Пример #1
0
def test_create_glir_message_base64():
    arr = np.zeros((3, 2)).astype(np.float32)
    arr2 = np.ones((4, 5)).astype(np.int16)

    commands = [('CREATE', 1, 'VertexBuffer'),
                ('UNIFORM', 2, 'u_scale', 'vec3', (1, 2, 3)),
                ('DATA', 3, 0, arr),
                ('UNIFORM', 4, 'u_pan', 'vec2', np.array([1, 2, 3])),
                ('DATA', 5, 20, arr2)]
    msg = create_glir_message(commands, array_serialization='base64')
    assert_equal(msg['msg_type'], 'glir_commands')

    commands_serialized = msg['commands']
    assert_equal(commands_serialized,
                 [['CREATE', 1, 'VertexBuffer'],
                  ['UNIFORM', 2, 'u_scale', 'vec3', [1, 2, 3]],
                  ['DATA', 3, 0, {
                      'buffer_index': 0
                  }], ['UNIFORM', 4, 'u_pan', 'vec2', [1, 2, 3]],
                  ['DATA', 5, 20, {
                      'buffer_index': 1
                  }]])

    buffers_serialized = msg['buffers']
    buf0 = buffers_serialized[0]
    assert_equal(buf0['storage_type'], 'base64')
    assert_equal(buf0['buffer'], 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

    buf1 = buffers_serialized[1]
    assert_equal(buf0['storage_type'], 'base64')
    assert_equal(buf1['buffer'],
                 'AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA==')
Пример #2
0
def test_create_glir_message_binary():
    arr = np.zeros((3, 2)).astype(np.float32)
    arr2 = np.ones((4, 5)).astype(np.int16)

    commands = [('CREATE', 1, 'VertexBuffer'),
                ('UNIFORM', 2, 'u_scale', 'vec3', (1, 2, 3)),
                ('DATA', 3, 0, arr),
                ('UNIFORM', 4, 'u_pan', 'vec2', np.array([1, 2, 3])),
                ('DATA', 5, 20, arr2)]
    msg = create_glir_message(commands)
    assert_equal(msg['msg_type'], 'glir_commands')

    commands_serialized = msg['commands']
    assert_equal(commands_serialized,
                 [['CREATE', 1, 'VertexBuffer'],
                  ['UNIFORM', 2, 'u_scale', 'vec3', [1, 2, 3]],
                  ['DATA', 3, 0, {
                      'buffer_index': 0
                  }], ['UNIFORM', 4, 'u_pan', 'vec2', [1, 2, 3]],
                  ['DATA', 5, 20, {
                      'buffer_index': 1
                  }]])

    buffers_serialized = msg['buffers']
    buf0 = buffers_serialized[0]
    assert_equal(
        buf0,
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    )  # noqa

    buf1 = buffers_serialized[1]
    assert_equal(
        buf1,
        b'\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00'
    )  # noqa
Пример #3
0
def test_create_glir_message_base64():
    arr = np.zeros((3, 2)).astype(np.float32)
    arr2 = np.ones((4, 5)).astype(np.int16)

    commands = [('CREATE', 1, 'VertexBuffer'),
                ('UNIFORM', 2, 'u_scale', 'vec3', (1, 2, 3)),
                ('DATA', 3, 0, arr),
                ('UNIFORM', 4, 'u_pan', 'vec2', np.array([1, 2, 3])),
                ('DATA', 5, 20, arr2)]
    msg = create_glir_message(commands, array_serialization='base64')
    assert_equal(msg['msg_type'], 'glir_commands')

    commands_serialized = msg['commands']
    assert_equal(commands_serialized,
                 [['CREATE', 1, 'VertexBuffer'],
                  ['UNIFORM', 2, 'u_scale', 'vec3', [1, 2, 3]],
                  ['DATA', 3, 0, {'buffer_index': 0,
                                  'buffer_shape': [3, 2],
                                  'buffer_dtype': 'float32'}],
                  ['UNIFORM', 4, 'u_pan', 'vec2', [1, 2, 3]],
                  ['DATA', 5, 20, {'buffer_index': 1,
                                   'buffer_shape': [4, 5],
                                   'buffer_dtype': 'int16'}]])

    buffers_serialized = msg['buffers']
    buf0 = buffers_serialized[0]
    assert_equal(buf0['storage_type'], 'base64')
    assert_equal(buf0['buffer'], 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

    buf1 = buffers_serialized[1]
    assert_equal(buf0['storage_type'], 'base64')
    assert_equal(buf1['buffer'],
                 'AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA==')
Пример #4
0
def test_create_glir_message_binary():
    arr = np.zeros((3, 2)).astype(np.float32)
    arr2 = np.ones((4, 5)).astype(np.int16)

    commands = [('CREATE', 1, 'VertexBuffer'),
                ('UNIFORM', 2, 'u_scale', 'vec3', (1, 2, 3)),
                ('DATA', 3, 0, arr),
                ('UNIFORM', 4, 'u_pan', 'vec2', np.array([1, 2, 3])),
                ('DATA', 5, 20, arr2)]
    msg = create_glir_message(commands)
    assert_equal(msg['msg_type'], 'glir_commands')

    commands_serialized = msg['commands']
    assert_equal(commands_serialized,
                 [['CREATE', 1, 'VertexBuffer'],
                  ['UNIFORM', 2, 'u_scale', 'vec3', [1, 2, 3]],
                  ['DATA', 3, 0, {'buffer_index': 0}],
                  ['UNIFORM', 4, 'u_pan', 'vec2', [1, 2, 3]],
                  ['DATA', 5, 20, {'buffer_index': 1}]])

    buffers_serialized = msg['buffers']
    buf0 = buffers_serialized[0]
    assert_equal(buf0, b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')  # noqa

    buf1 = buffers_serialized[1]
    assert_equal(buf1, b'\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00')  # noqa
Пример #5
0
 def send_glir_commands(self, commands):
     # TODO: check whether binary websocket is available (ipython >= 3)
     # Until IPython 3.0 is released, use base64.
     array_serialization = "base64"
     # array_serialization = 'binary'
     if array_serialization == "base64":
         msg = create_glir_message(commands, "base64")
         msg["array_serialization"] = "base64"
         self.send(msg)
     elif array_serialization == "binary":
         msg = create_glir_message(commands, "binary")
         msg["array_serialization"] = "binary"
         # Remove the buffers from the JSON message: they will be sent
         # independently via binary WebSocket.
         buffers = msg.pop("buffers")
         self.comm.send({"method": "custom", "content": msg}, buffers=buffers)
Пример #6
0
 def send_glir_commands(self, commands):
     # TODO: check whether binary websocket is available (ipython >= 3)
     # Until IPython 3.0 is released, use base64.
     array_serialization = 'base64'
     # array_serialization = 'binary'
     if array_serialization == 'base64':
         msg = create_glir_message(commands, 'base64')
         msg['array_serialization'] = 'base64'
         self.send(msg)
     elif array_serialization == 'binary':
         msg = create_glir_message(commands, 'binary')
         msg['array_serialization'] = 'binary'
         # Remove the buffers from the JSON message: they will be sent
         # independently via binary WebSocket.
         buffers = msg.pop('buffers')
         self.comm.send({"method": "custom", "content": msg},
                        buffers=buffers)