示例#1
0
    def test_iter_array_values(self):
        my_array = Array([
            StackItem.New(12),
            StackItem.New(b'Hello World'),
            StackItem.New(True),
            Array([StackItem.New(113442),
                   StackItem.New(2),
                   StackItem.New(3)])
        ])
        self.econtext.EvaluationStack.PushT(my_array)
        self.engine.InvocationStack.PushT(self.econtext)
        self.service.Enumerator_Create(self.engine)

        create_itervalues = self.service.Iterator_Values(self.engine)

        self.assertEqual(create_itervalues, True)

        itervals = self.econtext.EvaluationStack.Peek(0).GetInterface()

        self.assertIsInstance(itervals, ValuesWrapper)

        values = []
        while itervals.Next():
            values.append(itervals.Value())

        self.assertEqual(values, my_array.GetArray())
示例#2
0
    def test_iter_array(self):
        my_array = Array([
            StackItem.New(12),
            StackItem.New(b'Hello World'),
            StackItem.New(True),
            Array([StackItem.New(113442),
                   StackItem.New(2),
                   StackItem.New(3)])
        ])
        self.econtext.EvaluationStack.PushT(my_array)
        self.engine.InvocationStack.PushT(self.econtext)
        self.service.Enumerator_Create(self.engine)

        iterable = self.econtext.EvaluationStack.Peek(0).GetInterface()

        self.assertIsInstance(iterable, ArrayWrapper)

        keys = []
        values = []
        while iterable.Next():
            currentKey = iterable.Key()
            keys.append(currentKey.GetBigInteger())
            values.append(iterable.Value())

        self.assertEqual(keys, [0, 1, 2, 3])
        self.assertEqual(values, my_array.GetArray())
    def test_iter_concat(self):

        my_array = Array([
            StackItem.New(12),
            StackItem.New(b'Hello World'),
            StackItem.New(True),
            Array([StackItem.New(113442),
                   StackItem.New(2),
                   StackItem.New(3)])
        ])

        my_array2 = Array([
            StackItem.New(b'a'),
            StackItem.New(b'b'),
            StackItem.New(4),
            StackItem.New(100)
        ])

        self.engine.EvaluationStack.PushT(my_array2)

        self.state_reader.Enumerator_Create(self.engine)

        self.engine.EvaluationStack.PushT(my_array)

        self.state_reader.Enumerator_Create(self.engine)

        result = self.state_reader.Enumerator_Concat(self.engine)

        self.assertEqual(result, True)

        concatted_enum = self.engine.EvaluationStack.Peek().GetInterface()

        self.assertIsInstance(concatted_enum, ConcatenatedEnumerator)

        values = []
        count = 0

        while concatted_enum.Next():

            count += 1
            values.append(concatted_enum.Value())

        self.assertEqual(count, 8)

        self.assertEqual(values, my_array.GetArray() + my_array2.GetArray())