Add Dumas JSON array iterator node

This commit is contained in:
2026-07-21 10:51:20 +00:00
parent 3b918fd36f
commit 6994cb64c5
3 changed files with 91 additions and 0 deletions

View File

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