예제 #1
0
 def data(self):
     self.assertEqual(m.Data(0x80000000).__class__, m.Int64)
     self.assertEqual(m.Data(0x7fffffff).__class__, m.Int32)
     if m.version.ispy2:
         self.assertEqual(m.Data(long(1)).__class__, m.Int64)
     a = m.ADD(m.Int32(1), m.Int32(2))
     self.assertEqual(m.MULTIPLY(a, a).decompile(), "(1 + 2) * (1 + 2)")
     self.assertEqual(m.Data(2).compare(2), True)
     self.assertEqual(m.Data(2).compare(1), False)
     self.assertEqual(
         m.Dictionary([1, 'a', 2, 'b']).data().tolist(), {
             1: 'a',
             2: 'b'
         })
     self.assertEqual(
         m.List([1, 'a', 2, 'b']).data().tolist(), [1, 'a', 2, 'b'])
     a = m.Apd()
     e = m.Data(1)
     e.tree = 'dummy_e'
     f = m.Data(2)
     f.tree = 'dummy_f'
     self.assertEqual(a.tree, None)
     a.append(e)  # a should use tree of e
     self.assertEqual(a.tree, e.tree)
     self.assertEqual(a[0].tree, e.tree)
     a.append(f)  # a should keep tree of e
     self.assertEqual(a.tree, e.tree)
     self.assertEqual(a[1].tree, f.tree)
     self._doUnaryArray(m.Int32(range(10)), m.Int32Array(range(10)),
                        'Int32(range(10))')