File: test_buffer.py

package info (click to toggle)
python-moderngl 5.12.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,700 kB
  • sloc: python: 15,758; cpp: 14,665; makefile: 14
file content (98 lines) | stat: -rw-r--r-- 2,293 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98


def test_glo(ctx):
    buf = ctx.buffer(reserve=1024)
    assert buf.glo > 0


def test_buffer_eq(ctx):
    buf1 = ctx.buffer(reserve=1024)
    buf2 = ctx.buffer(reserve=1024)
    assert buf1 != buf2
    assert buf1 == buf1
    assert buf2 == buf2


def test_bind(ctx):
    buf = ctx.buffer(reserve=1024)
    res = buf.bind("in_pos", "in_vel", layout="2f 2f")
    assert res == (buf, "2f 2f", "in_pos", "in_vel")


def test_assign(ctx):
    buf = ctx.buffer(reserve=1024)
    assert buf.assign(1) == (buf, 1)


def test_buffer_clear_1(ctx):
    buf = ctx.buffer(data=b'\xAA\x55' * 10)
    buf.clear(chunk=b'AB')
    assert buf.read() == b'AB' * 10


def test_buffer_clear_2(ctx):
    buf = ctx.buffer(data=b'\xAA\x55' * 10)
    buf.clear(offset=1, size=18, chunk=b'AB')
    assert buf.read() == b'\xAAABABABABABABABABAB\x55'


def test_buffer_create(ctx):
    buf = ctx.buffer(data=b'\xAA\x55' * 10)
    assert buf.read() == b'\xAA\x55' * 10


def test_buffer_read_write(ctx):
    buf = ctx.buffer(reserve=10)
    buf.write(b'abcd')
    assert buf.read(4) == b'abcd'
    buf.write(b'abcd', offset=3)
    assert buf.read(4, offset=1) == b'bcab'
    buf.write(b'abcd', offset=6)
    assert buf.read() == b'abcabcabcd'
    assert buf.read(offset=3) == b'abcabcd'


def test_buffer_read_into_1(ctx):
    data = b'Hello World!'
    buf = ctx.buffer(data)
    res = bytearray(buf.size)
    buf.read_into(res)
    assert bytes(res) == data


def test_buffer_read_into_2(ctx):
    data = b'Hello World!'
    buf = ctx.buffer(data)
    res = bytearray(10)
    buf.read_into(res, offset=6, size=5, write_offset=0)
    buf.read_into(res, offset=0, size=5, write_offset=5)
    assert bytes(res) == b'WorldHello'


def test_buffer_orphan(ctx):
    buf = ctx.buffer(reserve=1024)
    buf.orphan()


def test_buffer_orphan_resize(ctx):
    buf = ctx.buffer(reserve=10)
    assert buf.size == 10
    assert len(buf.read()) == 10

    buf.orphan(20)
    assert buf.size == 20
    assert len(buf.read()) == 20

    buf.orphan(100)
    assert buf.size == 100
    assert len(buf.read()) == 100

    buf.orphan(-100)
    assert buf.size == 100
    assert len(buf.read()) == 100


def test_buffer_labels(ctx):
    buf = ctx.buffer(reserve=1024)
    buf.label = "test buffer"
    assert buf.label == "test buffer"