Add Dumas JSON array iterator node
This commit is contained in:
@@ -2,6 +2,7 @@ import unittest
|
||||
|
||||
from dumas_json_nodes import (
|
||||
DumasJSONArrayLengthNode,
|
||||
DumasJSONArrayIteratorNode,
|
||||
DumasJSONGetValueNode,
|
||||
DumasJSONKeysNode,
|
||||
DumasJSONMergeObjectsNode,
|
||||
@@ -73,6 +74,41 @@ class DumasJSONNodeTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(result, (4,))
|
||||
|
||||
def test_array_iterator_fixed_mode_uses_given_index(self):
|
||||
node = DumasJSONArrayIteratorNode()
|
||||
|
||||
result = node.iterate(["a", "b", "c"], 1, "fixed")
|
||||
|
||||
self.assertEqual(result, ("b", 1, 3))
|
||||
|
||||
def test_array_iterator_incr_mode_advances_index(self):
|
||||
node = DumasJSONArrayIteratorNode()
|
||||
|
||||
result = node.iterate(["a", "b", "c"], 1, "incr")
|
||||
|
||||
self.assertEqual(result, ("c", 2, 3))
|
||||
|
||||
def test_array_iterator_decr_mode_decrements_index(self):
|
||||
node = DumasJSONArrayIteratorNode()
|
||||
|
||||
result = node.iterate(["a", "b", "c"], 1, "decr")
|
||||
|
||||
self.assertEqual(result, ("a", 0, 3))
|
||||
|
||||
def test_array_iterator_clamps_out_of_range_index(self):
|
||||
node = DumasJSONArrayIteratorNode()
|
||||
|
||||
result = node.iterate(["a", "b", "c"], 99, "fixed")
|
||||
|
||||
self.assertEqual(result, ("c", 2, 3))
|
||||
|
||||
def test_array_iterator_handles_empty_arrays(self):
|
||||
node = DumasJSONArrayIteratorNode()
|
||||
|
||||
result = node.iterate([], 0, "fixed")
|
||||
|
||||
self.assertEqual(result, (None, -1, 0))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user