This repository has been archived by the owner on Feb 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcommands_test.py
executable file
·67 lines (55 loc) · 2.28 KB
/
commands_test.py
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
#!/usr/bin/env python3
import unittest
import commands
class TestCommands(unittest.TestCase):
def test_smove1( self ):
dat = bytes((0b00010100, 0b00011011))
s = commands.SMove( dat )
self.assertEqual( (s.lldx, s.lldy, s.lldz), (12, 0, 0) )
self.assertEqual( s.export_data(), dat )
def test_smove2( self ):
dat = bytes((0b00110100, 0b00001011))
s = commands.SMove( dat )
self.assertEqual( (s.lldx, s.lldy, s.lldz), (0, 0, -4) )
self.assertEqual( s.export_data(), dat )
def test_lmove1( self ):
dat = bytes((0b10011100, 0b00001000))
s = commands.LMove( dat )
self.assertEqual( (s.sld1x, s.sld1y, s.sld1z), (3, 0, 0) )
self.assertEqual( (s.sld2x, s.sld2y, s.sld2z), (0, -5, 0) )
self.assertEqual( s.export_data(), dat )
def test_lmove2( self ):
dat = bytes((0b11101100, 0b01110011))
s = commands.LMove( dat )
self.assertEqual( (s.sld1x, s.sld1y, s.sld1z), (0, -2, 0) )
self.assertEqual( (s.sld2x, s.sld2y, s.sld2z), (0, 0, 2) )
self.assertEqual( s.export_data(), dat )
def test_fusionp( self ):
dat = bytes((0b00111111,))
s = commands.FusionP( dat )
self.assertEqual( (s.ndx, s.ndy, s.ndz), (-1, 1, 0) )
self.assertEqual( s.export_data(), dat )
def test_fusions( self ):
dat = bytes((0b10011110,))
s = commands.FusionS( dat )
self.assertEqual( (s.ndx, s.ndy, s.ndz), (1, -1, 0) )
self.assertEqual( s.export_data(), dat )
def test_fission( self ):
dat = bytes((0b01110101,0b00000101))
s = commands.Fission( dat )
self.assertEqual( (s.ndx, s.ndy, s.ndz), (0, 0, 1) )
self.assertEqual( s.m, 5 )
self.assertEqual( s.export_data(), dat )
def test_fill( self ):
dat = bytes((0b01010011,))
s = commands.Fill( dat )
self.assertEqual( (s.ndx, s.ndy, s.ndz), (0, -1, 0) )
self.assertEqual( s.export_data(), dat )
def test_roundtrip( self ):
with open('dfltTracesL/LA095.nbt', 'rb') as f:
data = f.read()
cmds = commands.read_nbt_iter( data )
out = commands.export_nbt( cmds )
self.assertEqual( data, out )
if __name__ == '__main__':
unittest.main()