Skip to content

Commit 73e4dda

Browse files
committed
Add test for own packing and parsing
1 parent a589eee commit 73e4dda

2 files changed

Lines changed: 119 additions & 1 deletion

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ __pycache__
66
.pytest_cache/
77
devel/
88
*whl
9-
.DS_Store
9+
.DS_Store
10+
.mypy_cache

tests/test_own_pack_unpack.py

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
import binascii
2+
import pypsn
3+
from pathlib import Path
4+
# Test packing and parsing our own data
5+
6+
7+
psn_info = pypsn.psn_info_packet(
8+
info=pypsn.psn_info(
9+
timestamp=1312,
10+
version_high=2,
11+
version_low=0,
12+
frame_id=56,
13+
packet_count=1,
14+
),
15+
name="system_name_001",
16+
trackers=(
17+
[
18+
pypsn.psn_tracker_info(
19+
tracker_id=i,
20+
tracker_name="tracker_" + str(i),
21+
)
22+
for i in range(0, 7)
23+
]
24+
),
25+
)
26+
psn_data = pypsn.psn_data_packet(
27+
info=psn_info.info,
28+
trackers=(
29+
[
30+
pypsn.psn_tracker(
31+
id=tracker.tracker_id,
32+
info=psn_info.info,
33+
pos=pypsn.psn_vector3(
34+
x=0.0,
35+
y=0.0,
36+
z=0.0,
37+
),
38+
speed=pypsn.psn_vector3(
39+
x=0.0,
40+
y=0.0,
41+
z=0.0,
42+
),
43+
ori=pypsn.psn_vector3(
44+
x=0.0,
45+
y=0.0,
46+
z=0.0,
47+
),
48+
accel=pypsn.psn_vector3(
49+
x=0.0,
50+
y=0.0,
51+
z=0.0,
52+
),
53+
trgtpos=pypsn.psn_vector3(
54+
x=0.0,
55+
y=0.0,
56+
z=0.0,
57+
),
58+
status=0,
59+
timestamp=psn_info.info.timestamp,
60+
)
61+
for tracker in psn_info.trackers
62+
]
63+
),
64+
)
65+
66+
67+
def get_test_data():
68+
return pypsn.prepare_psn_data_packet_bytes(psn_data)
69+
70+
71+
def get_test_info():
72+
return pypsn.prepare_psn_info_packet_bytes(psn_info)
73+
74+
75+
def test_data_data(pypsn_module):
76+
"""Test position"""
77+
hexdata = get_test_data()
78+
data = pypsn_module.parse_psn_packet(hexdata)
79+
test_vector = pypsn_module.psn_vector3(0.0, 0.0, 0.0)
80+
if isinstance(data, pypsn_module.psn_data_packet):
81+
assert test_vector == data.trackers[0].pos
82+
83+
84+
def test_data_info(pypsn_module):
85+
"""Test header info data"""
86+
87+
hexdata = get_test_data()
88+
data = pypsn_module.parse_psn_packet(hexdata)
89+
if isinstance(data, pypsn_module.psn_data_packet):
90+
assert 56 == data.info.frame_id
91+
assert 1 == data.info.packet_count
92+
assert 1312 == data.info.timestamp
93+
assert 2 == data.info.version_high
94+
assert 0 == data.info.version_low
95+
96+
97+
def test_info_info(pypsn_module):
98+
"""Test header info data and system name"""
99+
100+
hexdata = get_test_data()
101+
data = pypsn_module.parse_psn_packet(hexdata)
102+
if isinstance(data, pypsn_module.psn_info_packet):
103+
assert b"system_name_001" == data.name
104+
assert 56 == data.info.frame_id
105+
assert 1 == data.info.packet_count
106+
assert 1312 == data.info.timestamp
107+
assert 2 == data.info.version_high
108+
assert 0 == data.info.version_low
109+
110+
111+
def test_info_data(pypsn_module):
112+
"""Test tracker name"""
113+
114+
hexdata = get_test_info()
115+
data = pypsn_module.parse_psn_packet(hexdata)
116+
if isinstance(data, pypsn_module.psn_info_packet):
117+
assert data.trackers[0].tracker_name == b"tracker_0"

0 commit comments

Comments
 (0)