Example #1
0
    def test_init_default(self):
        """ Test buffer init"""

        # No data
        B = Buffer()
        assert B.nbytes == 0
        glir_cmd = B._glir.clear()[-1]
        assert glir_cmd[0] == 'CREATE'

        # With data
        data = np.zeros(100)
        B = Buffer(data=data)
        assert B.nbytes == data.nbytes
        glir_cmd = B._glir.clear()[-1]
        assert glir_cmd[0] == 'DATA'

        # With nbytes
        B = Buffer(nbytes=100)
        assert B.nbytes == 100
        glir_cmd = B._glir.clear()[-1]
        assert glir_cmd[0] == 'SIZE'

        # Wrong data
        self.assertRaises(ValueError, Buffer, data, 4)
        self.assertRaises(ValueError, Buffer, data, data.nbytes)
Example #2
0
 def test_setting_subdata(self):
     
     data = np.zeros(100, np.float32)
     buffer = Buffer(target=gl.GL_ARRAY_BUFFER)
     
     # Set subdata when no data is set
     with self.assertRaises(RuntimeError):
         buffer.set_subdata(0, data)
     
     # Set nbytes and try again
     buffer.set_nbytes(data.nbytes)
     buffer.set_subdata(0, data)
     
     # Subpart
     buffer.set_subdata(0, data[:50])
     buffer.set_subdata(50, data[50:])
     
     # Too big
     with self.assertRaises(ValueError):
         buffer.set_subdata(1, data)
     
     # Weird
     with self.assertRaises(ValueError):
         buffer.set_subdata(-1, data)
     
     # Weirder
     with self.assertRaises(ValueError):
         buffer.set_subdata(1000000, data)
Example #3
0
 def test_wrong_data(self):
     buffer = Buffer(target=gl.GL_ARRAY_BUFFER)
     
     # String
     with self.assertRaises(ValueError):
         buffer.set_data('foo')
     
     # Bytes
     some_bytes = 'foo'.encode('utf-8')
     with self.assertRaises(ValueError):
         buffer.set_data(some_bytes)
     
     # Now with subdata
     data = np.zeros(100, np.float32)
     buffer.set_data(data)
     
     
     # String
     with self.assertRaises(ValueError):
         buffer.set_subdata(0, 'foo')
     with self.assertRaises(ValueError):
         buffer.set_subdata('foo', data)
     
     # Bytes
     some_bytes = 'foo'.encode('utf-8')
     with self.assertRaises(ValueError):
         buffer.set_subdata(0, some_bytes)
     with self.assertRaises(ValueError):
         buffer.set_subdata(some_bytes, data)
Example #4
0
 def test_offlimit_offset(self):
     data = np.zeros(10)
     B = Buffer(data=data)
     # with self.assertRaises(ValueError):
     #    B.set_data(np.ones(1), offset=10 * data.dtype.itemsize)
     self.assertRaises(ValueError, B.set_subdata,
                       np.ones(1), offset=10 * data.dtype.itemsize)
Example #5
0
 def test_init(self):
     buffer = Buffer(target=gl.GL_ARRAY_BUFFER)
     assert buffer._handle      == 0
     assert buffer._need_update == False
     assert buffer._valid       == False
     assert buffer._nbytes      == 0
     assert buffer._usage       == gl.GL_DYNAMIC_DRAW
Example #6
0
    def test_set_whole_data(self):
        data = np.zeros(100)
        B = Buffer(data=data)
        B._glir.clear()
        B.set_data(data=data)
        glir_cmds = B._glir.clear()
        assert len(glir_cmds) == 2
        assert glir_cmds[0][0] == 'SIZE'
        assert glir_cmds[1][0] == 'DATA'

        # And sub data
        B.set_subdata(data[:50], 20)
        glir_cmds = B._glir.clear()
        assert len(glir_cmds) == 1
        assert glir_cmds[0][0] == 'DATA'
        assert glir_cmds[0][2] == 20  # offset

        # And sub data
        B.set_subdata(data)
        glir_cmds = B._glir.clear()
        assert glir_cmds[-1][0] == 'DATA'

        # Wrong ways to set subdata
        self.assertRaises(ValueError, B.set_subdata, data[:50], -1)  # neg
        self.assertRaises(ValueError, B.set_subdata, data, 10)  # no fit
Example #7
0
 def test_init_default(self):
     B = Buffer()
     assert B._target == gl.GL_ARRAY_BUFFER
     assert B._handle == -1
     assert B._need_create is True
     assert B._need_delete is False
     assert B._nbytes == 0
     assert B._usage == gl.GL_DYNAMIC_DRAW
Example #8
0
    def test_pending_data(self):
        data = np.zeros(100, np.float32)

        buffer = Buffer(target=gl.GL_ARRAY_BUFFER)
        self.assertEqual(len(buffer._pending_data), 0)
        
        buffer = Buffer(data=data, target=gl.GL_ARRAY_BUFFER)
        self.assertEqual(len(buffer._pending_data), 1)

        buffer.set_data(data)
        self.assertEqual(len(buffer._pending_data), 1)

        buffer.set_subdata(0, data[:50])
        self.assertEqual(len(buffer._pending_data), 2)

        buffer.set_data(data)
        self.assertEqual(len(buffer._pending_data), 1)
Example #9
0
 def test_setting_size(self):
     data = np.zeros(100, np.float32)
     buffer = Buffer(target=gl.GL_ARRAY_BUFFER)
     
     buffer.set_data(data)
     self.assertEqual(buffer.nbytes, data.nbytes)
     
     buffer.set_data( np.zeros(200, np.float32))
     self.assertEqual(buffer.nbytes, 200*4)
     
     buffer.set_nbytes(10)
     self.assertEqual(buffer.nbytes, 10)
     
     buffer.set_nbytes(20)
     self.assertEqual(buffer.nbytes, 20)
Example #10
0
 def test_buffer_resize(self):
     data = np.zeros(10)
     B = Buffer(data=data)
     data = np.zeros(20)
     B.set_data(data)
     assert B.nbytes == data.nbytes
Example #11
0
 def test_negative_offset(self):
     data = np.zeros(10)
     B = Buffer(data=data)
     # with self.assertRaises(ValueError):
     #    B.set_data(np.ones(1), offset=-1)
     self.assertRaises(ValueError, B.set_subdata, np.ones(1), offset=-1)
Example #12
0
 def test_oversized_data(self):
     data = np.zeros(10)
     B = Buffer(data=data)
     # with self.assertRaises(ValueError):
     #    B.set_data(np.ones(20))
     self.assertRaises(ValueError, B.set_subdata, np.ones(20), offset=0)
Example #13
0
 def test_data_copy(self):
     data = np.zeros(100)
     B = Buffer(data=data)
     B.set_data(data=data[:50], copy=True)
     assert B._pending_data[-1][0].base is not data
Example #14
0
 def test_data_storage(self):
     data = np.zeros(100)
     B = Buffer(data=data)
     B.set_data(data=data[:50], copy=False)
     assert B._pending_data[-1][0].base is data
Example #15
0
 def test_set_whole_data(self):
     data = np.zeros(100)
     B = Buffer(data=data)
     B.set_data(data=data)
     assert len(B._pending_data) == 1
Example #16
0
 def test_init_with_data(self):
     data = np.zeros(100)
     B = Buffer(data=data)
     assert len(B._pending_data) == 1
Example #17
0
 def test_init_no_data(self):
     B = Buffer()
     assert len(B._pending_data) == 0
Example #18
0
 def test_buffer_size(self):
     data = np.zeros(10)
     B = Buffer(data=data)
     assert B.nbytes == data.nbytes
Example #19
0
 def test_data_storage(self):
     data = np.zeros(100)
     B = Buffer(data=data)
     B.set_data(data=data[:50], copy=False)
     glir_cmd = B._glir.clear()[-1]
     assert glir_cmd[-1].base is data