def test_random_swap(self, qty=1000): for i in range(qty): a = Bitstring() b = a.copy() self.assertEqual(a.distance_to(b), 0) dist = random.randint(0, sdm.get_dimension()) b.bitrandomswap(dist) self.assertEqual(a.distance_to(b), dist)
def test_saveload(self): a = Bitstring() #sdm.initialize() sdm.thread_write(a, a) self.assertEqual(a.distance_to(sdm.thread_read(a)), 0) self.assertEqual(sdm.save_to_file('_test.sdm'), 0) sdm.free() sdm.initialize() self.assertTrue(a.distance_to(sdm.read(a)) > 0) sdm.free() self.assertEqual(sdm.initialize_from_file('_test.sdm'), 0) self.assertEqual(a.distance_to(sdm.thread_read(a)), 0)
def test_readwrite_overflow(self, qty=1000): a = Hardlocation() b = Bitstring() for i in range(qty): a.write(b) c = a.read() self.assertEqual(b.distance_to(c), 0)
def test_writeread(self, qty=10): #sdm.initialize() for i in range(qty): a = Bitstring() sdm.write(a, a) b = sdm.read(a) self.assertEqual(a.distance_to(b), 0)
def test_readwrite_overflow(self, qty=1000): a = Hardlocation() b = Bitstring() for i in range(qty): a.write(b) c = a.read() self.assertEqual(b.distance_to(c), 0)
def test_readwrite_swap(self, qty=1000): for i in range(qty): a = Hardlocation() b = Bitstring() a.write(b) c = a.read() self.assertEqual(b.distance_to(c), 0) b.bitswap(0) a.write(b) a.write(b) c = a.read() b.bitswap(0) self.assertEqual(b.distance_to(c), 1) c.bitswap(0) self.assertEqual(b.distance_to(c), 0)
def test_writeread(self, qty=10): sdm.initialize() for i in range(qty): a = Bitstring() sdm.thread_write(a, a) b = sdm.thread_read(a) self.assertEqual(a.distance_to(b), 0) sdm.free()
def test_readwrite_swap(self, qty=1000): for i in range(qty): a = Hardlocation() b = Bitstring() a.write(b) c = a.read() self.assertEqual(b.distance_to(c), 0) b.bitswap(0) a.write(b) a.write(b) c = a.read() b.bitswap(0) self.assertEqual(b.distance_to(c), 1) c.bitswap(0) self.assertEqual(b.distance_to(c), 0)
def test_writereadnear(self, distance=50, qty=10): #sdm.initialize() for i in range(qty): a = Bitstring() sdm.write(a, a) b = a.copy() b.bitrandomswap(distance) c = sdm.read(b) self.assertEqual(a.distance_to(c), 0)
def test_writereadnear(self, distance=50, qty=10): sdm.initialize() for i in range(qty): a = Bitstring() sdm.thread_write(a, a) b = a.copy() b.bitrandomswap(distance) c = sdm.thread_read(b) self.assertEqual(a.distance_to(c), 0) sdm.free()
def test_average_random(self, qty=1000): for i in range(qty): a = Bitstring() b = Bitstring() c = Bitstring.average(a, b) d0 = a.distance_to(b) d1 = c.distance_to(a) d2 = c.distance_to(b) self.assertEqual(d1+d2, d0) self.assertTrue(d1 < d0) self.assertTrue(d2 < d0) self.assertTrue(abs(d1-d2) <= 1)