コード例 #1
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_string(self):
     self.assertEqual(d.unpack('=40s', self.buf),
                      ls_odict(['Jonny Normal' + (28 * '\x00')]))
     self.assertEqual(self.buf.pos, 40)
     self.buf.pos = 0
     self.assertEqual(d.unpack('=5s', self.buf),
                      ls_odict(['Jonny']))
コード例 #2
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_comments(self):
     self.assertEqual(d.unpack('<5s #6s\n x\n#  s\n 6s', self.buf),
                      ls_odict(['Jonny', 'Normal']))
     self.buf.pos = 0
     self.assertEqual(d.unpack('<(5s\n x #ignore space\n 6s)[name]',
                               self.buf),
                      d.odict(name=ls_odict(['Jonny', 'Normal'])))
コード例 #3
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_dont_care(self):
     self.assertEqual(d.unpack('<5s x 6s', self.buf),
                      ls_odict(['Jonny', 'Normal']))
     self.buf.pos = 0
     self.assertEqual(d.unpack('<3s[nickname] 3x c[initial] 5s', self.buf),
                      d.odict([('nickname', 'Jon'),
                               ('initial', 'N'),
                               (2, 'ormal')]))
コード例 #4
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_naming(self):
     self.assertEqual(d.unpack('<40s[name]', self.buf),
                      d.odict(name='Jonny Normal'+(28*'\x00')))
     self.buf.pos = 0
     expected = d.odict()
     expected.append('Jonny Normal' + (28 * '\x00'))
     expected['pid'] = 0x12e
     expected['points'] = ls_odict([0, 1, 5, 5, 16, 8, 24] + ([0] * 35))
     expected.append(4)
     self.assertEqual(d.unpack('<40s I [pid]  (42B)[points] I', self.buf),
                      expected)
コード例 #5
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_endiannes(self):
     # make sure endianness distributes through the call stack
     self.buf.pos = 44
     self.assertEqual(d.unpack('<H((HH)H)', self.buf),
                      ls_odict([0x100,
                                ls_odict([ls_odict([0x0505, 0x0810]),
                                          0x18])
                               ]))
     self.buf.pos = 44
     self.assertEqual(d.unpack('>H((HH)H)', self.buf),
                      ls_odict([0x1,
                                ls_odict([ls_odict([0x0505, 0x1008]),
                                          0x1800])
                               ]))
コード例 #6
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_nested_string(self):
     self.assertEqual(d.unpack('=(((s)2s)2s)s(s(5s))', self.buf),
                      ls_odict([ls_odict([ls_odict([ls_odict(['J']),
                                                    'on']),
                                          'ny']),
                                ' ',
                                ls_odict(['N',
                                          ls_odict(['ormal'])
                                         ])
                               ]))
     # {{{{J}, on}, ny}, ' ', {N, {ormal}}}
     self.assertEqual(self.buf.pos, 12)
コード例 #7
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_numbers(self):
     self.buf.pos = 40
     self.assertEqual(d.unpack('<I', self.buf), ls_odict([0x12e]))
     self.buf.pos = 40
     self.assertEqual(d.unpack('>I', self.buf), ls_odict([0x2e010000]))
コード例 #8
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_whitespace(self):
     self.assertEqual(d.unpack('<\n\n12s [name]\n 28x\n\tI \n\t[pid]\n\n\n',
                               self.buf),
                      d.odict([('name', 'Jonny Normal'),
                               ('pid', 0x12e)]))
コード例 #9
0
ファイル: t_destruct.py プロジェクト: patrickyeon/misfitideas
 def test_combo(self):
     name, p_id, points, rank = d.unpack('<40s I (42B) I', self.buf).values()
     self.assertEqual(name, 'Jonny Normal' + (28 * '\x00'))
     self.assertEqual(p_id, 0x12e)
     self.assertEqual(points, ls_odict([0, 1, 5, 5, 16, 8, 24] + ([0] * 35)))
     self.assertEqual(rank, 4)