def test_map_import_export(self): a = FloatArray([ 1, 2, 3, 4 ]) b = FloatArray([ 2, 4, 6, 8 ]) v = SparseMap({ 1: a, 3: b }) buf = v.buffer() a.free() b.free() v.free() self.assertEqual(len(buf), 40) copy = SparseMap(buf, len(buf)) self.assertDictEqual(dict(copy.items()), { 1: [1, 2, 3, 4], 3: [2, 4, 6, 8] }) copy.free() v = SparseMap() self.assertEqual(v.buffer(), None) v.free()
def test_use_map_after_free_error(self): s = SparseMap() s.free() freed_array = FloatArray() freed_array.free() tmp_array = FloatArray() tmp = SparseMap() with self.assertRaises(GaugedUseAfterFreeError): s.append(1, tmp_array) with self.assertRaises(GaugedUseAfterFreeError): tmp.append(1, freed_array) with self.assertRaises(GaugedUseAfterFreeError): s.slice() with self.assertRaises(GaugedUseAfterFreeError): s.concat(tmp) with self.assertRaises(GaugedUseAfterFreeError): tmp.concat(s) with self.assertRaises(GaugedUseAfterFreeError): s.byte_length() with self.assertRaises(GaugedUseAfterFreeError): s.buffer() with self.assertRaises(GaugedUseAfterFreeError): s.clear() with self.assertRaises(GaugedUseAfterFreeError): s.first() with self.assertRaises(GaugedUseAfterFreeError): s.last() with self.assertRaises(GaugedUseAfterFreeError): s.sum() with self.assertRaises(GaugedUseAfterFreeError): s.min() with self.assertRaises(GaugedUseAfterFreeError): s.max() with self.assertRaises(GaugedUseAfterFreeError): s.mean() with self.assertRaises(GaugedUseAfterFreeError): s.stddev() with self.assertRaises(GaugedUseAfterFreeError): s.count() with self.assertRaises(GaugedUseAfterFreeError): s.percentile(50) with self.assertRaises(GaugedUseAfterFreeError): list(s.iteritems()) tmp_array.free() tmp.free()
def test_map_import_export(self): a = FloatArray([1, 2, 3, 4]) b = FloatArray([2, 4, 6, 8]) v = SparseMap({1: a, 3: b}) buf = v.buffer() a.free() b.free() v.free() self.assertEqual(len(buf), 40) copy = SparseMap(buf, len(buf)) self.assertDictEqual(dict(copy.items()), { 1: [1, 2, 3, 4], 3: [2, 4, 6, 8] }) copy.free() v = SparseMap() self.assertEqual(v.buffer(), None) v.free()
def test_map_buffer_offset(self): a = FloatArray([1]) b = FloatArray([1, 2, 3]) v = SparseMap({1: a, 3: b}) buf = v.buffer(byte_offset=8) a.free() b.free() v.free() copy = SparseMap(buf, len(buf)) self.assertDictEqual(dict(copy.items()), {3: [1, 2, 3]}) copy.free()