def test_reinterpret_signed_unsigned(self): mem = IndirectMemory2D.create_memory(rows=1, cols=1, format='b', readonly=False) memview = memoryview(mem) memview[0,0] = -1 del memview mem.reinterpret_data('B') memview=memoryview(mem) self.assertEqual(memview[0,0], 255)
def test_reinterpret_locked(self): mem = IndirectMemory2D.create_memory(rows=1, cols=1, format='b', readonly=True) memview = memoryview(mem) # ok, because the same mem.reinterpret_data('b') self.assertTrue(True) #not ok with self.assertRaises(BufferError) as context: mem.reinterpret_data('B') self.assertEqual("buffer is locked", context.exception.args[0])
def test_readonly_copy_from(self): mem = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=True) mem2 = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=False) with self.assertRaises(BufferError) as context: mem.copy_from(mem2) self.assertEqual("copying to readonly buffer", context.exception.args[0])
def test_shape(self): mem = IndirectMemory2D.create_memory(rows=42, cols=21, format='b', readonly=False) shape = mem.shape self.assertEqual(len(shape), 2) self.assertEqual(shape[0],42) self.assertEqual(shape[1],21)
def test_copy_to_indirect_memory(self): mem = IndirectMemory2D.create_memory(rows=42, cols=21, format='i', readonly=False) mem2 = IndirectMemory2D.create_memory(rows=42, cols=21, format='i', readonly=False) memoryview(mem2)[15,2] = 42 mem2.copy_to(mem) self.assertEqual(memoryview(mem)[15,2], 42)
def test_get_format(self): mem = IndirectMemory2D.create_memory(rows=22, cols=33, format='i', readonly=True) self.assertEqual(mem.get_format(), b'i')
def test_diff_itemsize_with_cast_to(self): mem = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=False) mem2 = IndirectMemory2D.create_memory(rows=1, cols=2, format='i', readonly=False) with self.assertRaises(BufferError) as context: mem.copy_to(mem2, cast=True) self.assertEqual("different itemsizes", context.exception.args[0])
def test_diff_formats_with_cast_to(self): mem = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=False) mem2 = IndirectMemory2D.create_memory(rows=1, cols=2, format='b', readonly=False) mem.copy_to(mem2, cast=True) self.assertTrue(True)
def test_diff_formats_without_cast_to(self): mem = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=False) mem2 = IndirectMemory2D.create_memory(rows=1, cols=2, format='b', readonly=False) with self.assertRaises(BufferError) as context: mem.copy_to(mem2) self.assertEqual("different formats", context.exception.args[0])
def test_copy_to_wrong_shape_rows(self): mem = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=False) mem2 = IndirectMemory2D.create_memory(rows=2, cols=2, format='B', readonly=False) with self.assertRaises(BufferError) as context: mem.copy_to(mem2) self.assertEqual("different shapes", context.exception.args[0])
def test_copy_to_wrong_dim(self): mem = IndirectMemory2D.create_memory(rows=1, cols=2, format='B', readonly=False) mem2 = bytearray(b'a') with self.assertRaises(BufferError) as context: mem.copy_to(mem2) self.assertEqual("wrong number of dimensions: expected 2, received 1", context.exception.args[0])