diff --git a/tests/test_data_list_nodes.py b/tests/test_data_list_nodes.py index 63721f5..ac0c5a5 100644 --- a/tests/test_data_list_nodes.py +++ b/tests/test_data_list_nodes.py @@ -1,11 +1,11 @@ import pytest from src.basic_data_handling.data_list_nodes import ( DataListAppend, - DataListCreate, - DataListCreateFromBoolean, - DataListCreateFromFloat, - DataListCreateFromInt, - DataListCreateFromString, + #DataListCreate, + #DataListCreateFromBoolean, + #DataListCreateFromFloat, + #DataListCreateFromInt, + #DataListCreateFromString, DataListExtend, DataListInsert, DataListRemove, @@ -27,8 +27,8 @@ from src.basic_data_handling.data_list_nodes import ( DataListLast, DataListMin, DataListMax, - DataListToList, - DataListToSet, + #DataListToList, + #DataListToSet, ) diff --git a/tests/test_list_nodes.py b/tests/test_list_nodes.py index fa36b2f..2c8abbf 100644 --- a/tests/test_list_nodes.py +++ b/tests/test_list_nodes.py @@ -1,28 +1,31 @@ import pytest from src.basic_data_handling.list_nodes import ( + ListAppend, + ListContains, + ListCount, ListCreate, ListCreateFromBoolean, ListCreateFromFloat, ListCreateFromInt, ListCreateFromString, - ListAppend, ListExtend, - ListInsert, - ListRemove, - ListPop, - ListIndex, - ListCount, - ListSort, - ListReverse, - ListLength, - ListSlice, + ListFirst, ListGetItem, - ListSetItem, - ListContains, - ListMin, + ListIndex, + ListInsert, + ListLast, + ListLength, ListMax, + ListMin, + ListPop, + ListPopRandom, + ListRemove, + ListReverse, + ListSetItem, + ListSlice, + ListSort, ListToDataList, - ListToSet + ListToSet, ) @@ -61,6 +64,38 @@ def test_list_pop(): assert node.pop([], 0) == ([], None) # Empty list pop +def test_list_pop_random(): + node = ListPopRandom() + # Test with single item - must remove that item + result, item = node.pop_random_element([42]) + assert result == [] and item == 42 + + # Test with multiple items - can't predict which one will be popped + # but we can check the result list length and that the popped item was from the original list + original_list = [1, 2, 3, 4] + result, item = node.pop_random_element(original_list) + assert len(result) == len(original_list) - 1 + assert item in original_list + assert item not in result + + # Test with empty list + assert node.pop_random_element([]) == ([], None) + + +def test_list_first(): + node = ListFirst() + assert node.get_first_element([1, 2, 3]) == (1,) + assert node.get_first_element(["a", "b", "c"]) == ("a",) + assert node.get_first_element([]) == (None,) # Empty list + + +def test_list_last(): + node = ListLast() + assert node.get_last_element([1, 2, 3]) == (3,) + assert node.get_last_element(["a", "b", "c"]) == ("c",) + assert node.get_last_element([]) == (None,) # Empty list + + def test_list_index(): node = ListIndex() assert node.index([1, 2, 3, 2], 2) == (1,)