Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
jvdsn
GitHub Repository: jvdsn/crypto-attacks
Path: blob/master/test/test_knapsack.py
2587 views
1
import os
2
import sys
3
from unittest import TestCase
4
5
path = os.path.dirname(os.path.dirname(os.path.realpath(os.path.abspath(__file__))))
6
if sys.path[1] != path:
7
sys.path.insert(1, path)
8
9
from attacks.knapsack import low_density
10
11
12
class TestKnapsack(TestCase):
13
def test_low_density(self):
14
a = [429970831622, 650002882675, 512682138397, 145532365100, 462119415111, 357461497167, 582429951539, 22657777498, 2451348134, 380282710854, 251660920136, 103765486463, 276100153517, 250012242739, 519736909707, 451460714161]
15
s = 5398327344820
16
e = low_density.attack(a, s)
17
for i in range(len(a)):
18
self.assertIsInstance(e[i], int)
19
self.assertEqual(e, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
20
21
a = [23449054409, 58564582991, 24739686534, 30995859145, 16274600764, 13384701522, 45782350364, 10685194276, 18864211511, 9594013152, 50215903866, 7952180124, 42094717093, 50866816333, 44318421949, 31143511315]
22
s = 42313265920
23
e = low_density.attack(a, s)
24
for i in range(len(a)):
25
self.assertIsInstance(e[i], int)
26
self.assertEqual(e, [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0])
27
28