Пример #1
0
    def test_static_get(self):
        vm = VM()
        bigtuple.new(vm)
        for val in range(200):
            vm.push(val)
            vm.push(val + 100)
            vm.swap2()
            bigtuple.set_val(vm)

        tup = vm.stack.items[0]
        for val in range(200):
            self.assertEqual(bigtuple.get_static(tup, val), val + 100)
Пример #2
0
    def test_getset(self):
        vm = VM()
        keyvalue.new(vm)
        for val in range(200):
            vm.push(val)
            vm.push(val + 1000)
            vm.swap2()
            keyvalue.set_val(vm)

        for val in range(200):
            vm.push(val)
            vm.dup1()
            keyvalue.get(vm)
            self.assertEqual(val + 1000, vm.stack.items[0])
            vm.pop()
Пример #3
0
    def test_getset(self):
        indexes = [1, 10, 5, 6, 20, 100, 7, 5]
        vm = VM()
        sized_byterange.new(vm)
        for val in indexes:
            vm.push(val * 58)
            vm.push(val + 100)
            vm.swap2()
            sized_byterange.set_val(vm)

        for val in indexes:
            vm.push(val * 58)
            vm.dup1()
            sized_byterange.get(vm)
            self.assertEqual(val + 100, vm.stack.items[0])
            vm.pop()
Пример #4
0
    def test_static_get(self):
        vm = VM()
        sized_byterange.new(vm)
        for val in range(200):
            vm.push(val * 58)
            vm.push(val + 100)
            vm.swap2()
            sized_byterange.set_val(vm)

        tup = vm.stack.items[0]
        for val in range(200):
            vm.push(val * 58)
            vm.dup1()
            sized_byterange.get(vm)
            self.assertEqual(sized_byterange.get_static(tup, val * 58),
                             vm.stack.items[0])
            vm.pop()
Пример #5
0
 def test_frombytes(self):
     data = bytearray(random.getrandbits(8) for _ in range(500))
     data2 = bytearray(data)
     if len(data2) % 32 != 0:
         data2 = data2 + b"\0" * (32 - (len(data2) % 32))
     chunks = [
         eth_utils.big_endian_to_int(data2[i:i + 32])
         for i in range(0, len(data2), 32)
     ]
     vm = VM()
     byterange.new(vm)
     for i, chunk in enumerate(chunks):
         vm.push(i * 32)
         vm.push(chunk)
         vm.swap2()
         byterange.set_val(vm)
     self.assertEqual(byterange.frombytes(data), vm.stack[0])
Пример #6
0
    def test_get_static(self):
        vm = VM()
        keyvalue.new(vm)
        for val in range(200):
            vm.push(val)
            vm.push(val + 1000)
            vm.swap2()
            keyvalue.set_val(vm)

        kvs = vm.stack.items[0]
        for val in range(200):
            vm.push(val)
            vm.dup1()
            keyvalue.get(vm)
            self.assertEqual(keyvalue.get_static(kvs, val), vm.stack.items[0])
            vm.pop()

        self.assertEqual(keyvalue.get_static(kvs, 100000), value.Tuple([]))