/projects/lattice-enumeration/
"""Test bases and shortest vectors for SVP algorithm"""
# Dimension 2:
b2 = [
[-564, -355],
[-653, 527]]
# Shortest vector:
x2 = [-564, -355]
# Dimension 4:
b4 = [
[-300, -112, -419, -175],
[ 495, -152, -608, -174],
[ 226, -733, 135, -382],
[-230, -876, -362, 1351]]
# Shortest vector:
x4 = [-300, -112, -419, -175]
# Dimension 6:
b6 = [
[ 57, -161, 32, -47, -560, -394],
[-336, 410, -120, -418, -237, 184],
[ 447, 472, -290, 128, -135, 545],
[ 84 , 384, -342, -421, 595, -605],
[ 299, -776, -436, -634, 686, -8],
[ 496, -84, 1097, -598, -236, 304]]
# Shortest vector:
x6 = [57, -161, 32, -47, -560, -394]
# Dimension 8:
b8 = [
[-442, 9, -212, -298, 241, 145, -218, 599],
[-189, -557, -234, -127, 449, -459, 96, -291],
[ -6, 855, -57, 262, 12, -285, 271, 218],
[ 148, -721, -397, 565, -455, -240, 139, -98],
[ 348, -351, -218, -278, -446, -880, -11, 124],
[ 138, -580, 720, 32, 158, -524, -469, -40],
[-578, -396, -147, -304, -512, 118, 567, 406],
[ 530, -278, 138, 272, 139, -143, 585, 780]]
# Shortest vector:
x8 = [ 442, -9, 212, 298, -241, -145, 218, -599]
# Dimension 10:
b10 = [
[ -30, -277, -297, 269, 384, 20, 409, -328, 66, -232],
[ 86, 313, -25, -244, 451, 299, -289, 31, 163, 533],
[ 496, 129, -203, 348, -248, -354, -453, -415, -114, 93],
[ -8, -317, -431, -859, -494, -217, -50, 231, -105, 9],
[ 196, -146, 233, 604, -57, -53, 42, 115, 839, 525],
[ 185, -610, -244, 57, 200, -329, -653, 37, 625, -347],
[ 150, -516, 306, -326, 30, -1061, -418, -125, 316, 257],
[-1036, -185, -173, -213, 144, -543, -143, -52, 396, -179],
[ 275, 89, 447, -666, 283, -7, 50, -282, 632, -559],
[ -348, -430, 871, -235, 77, 570, -453, -337, 243, -55]]
# Shortest vector:
x10 = [30, 277, 297, -269, -384, -20, -409, 328, -66, 232]
# Dimension 20:
b20 = [
[ 305, 87, -243, 432, -11, 544, 546, 13, 394, -159, -101, 3, 214, -269, 267, 204, -422, -580, -42, 93],
[ 90, 591, -465, -620, -20, -437, -286, -112, -125, -327, 421, 172, -101, 54, 36, 74, 54, 586, -200, -20],
[-405, 436, 163, -95, -492, 254, 438, -63, -163, -118, -175, -293, -270, -95, -378, 138, 168, -644, -132, -123],
[-633, 148, 135, 7, 30, 42, 426, -153, -26, 242, -531, -456, 565, 161, -685, -270, -143, -168, 4, -20],
[ 210, -415, 70, 109, 194, 166, -324, -399, 83, 240, -499, -388, 520, 512, 450, -483, -42, -121, 9, -337],
[ 460, 34, 102, 340, -262, 649, -388, 195, 519, 192, -132, 127, 455, 358, 379, 77, -110, -270, 328, -244],
[ -58, 13, -283, 167, -182, 132, -63, 512, 181, -38, -239, 672, 223, -378, -144, -403, -117, 106, 185, 412],
[ 46, 64, -141, -141, -7, -313, -79, -840, -218, 233, 21, -600, -166, 46, -263, -421, -98, 597, 398, -377],
[-233, -429, 221, 551, 426, 384, -151, -244, -91, 239, 9, 368, 162, 435, 660, 493, 280, -243, 65, -260],
[-336, -124, -283, 9, -688, 285, 176, 257, 276, -173, -461, -729, 396, 70, -1, -12, -607, -345, -139, -234],
[-189, -666, -292, 332, 330, -509, 38, -3, -187, 432, -593, -95, 228, 175, -48, -279, -161, 211, -359, -715],
[ 515, -176, 253, 334, 145, -353, 77, -277, 337, 683, 119, -272, -266, -310, 98, -53, -385, 295, -524, -58],
[ 30, -459, 102, -333, -209, -847, 96, -272, -339, 178, 48, -375, -260, 210, 3, -269, 123, -418, 465, -508],
[ 595, -163, 387, 161, -449, 612, 20, 130, 107, 234, -374, -303, -6, -136, 129, 628, 123, -228, -274, 572],
[-236, -594, 227, 335, -78, 211, -93, -12, 155, 178, 137, 357, -250, 390, -178, -101, -627, 509, -193, -281],
[ 82, -207, 28, -251, 25, 251, 555, -129, -113, 504, -551, -41, -429, -276, 291, 314, -187, -571, 185, -363],
[-342, 446, 199, -759, -83, -216, 551, 83, 251, -68, 280, -394, 103, -380, 399, -196, 258, -87, -451, -350],
[ 302, 323, 361, -454, -144, -24, -316, 289, -371, -323, -45, -82, -77, -44, 861, -134, -413, 53, -551, 84],
[-213, -82, 194, 391, -159, 28, 117, -70, 414, 113, -444, -489, -397, 404, -41, -611, 301, 361, -49, 253],
[ 210, 321, -165, -38, 18, -37, -282, 543, -397, 400, 924, 512, 164, 281, -258, 181, -119, -230, -167, 376]]
# Shortest vector:
x20 = [-58, 13, -283, 167, -182, 132, -63, 512, 181, -38, -239, 672, 223, -378, -144, -403, -117, 106, 185, 412]
from vector import Vector
test_bases = [map(Vector, b2), map(Vector, b4), map(Vector, b6), map(Vector, b8), map(Vector, b10), map(Vector, b20)]
test_sols = [Vector(x2) , Vector(x4), Vector(x6), Vector(x8), Vector(x10), Vector(x20)]