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())
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())