Add optional seed inputs to pop-random nodes.
This commit is contained in:
@@ -303,6 +303,13 @@ def test_pop_random():
|
||||
# Empty list case
|
||||
assert node.pop_random_element(list=[]) == ([], None)
|
||||
|
||||
# Same seed should produce the same popped item
|
||||
original_list = [1, 2, 3, 4]
|
||||
result1, item1 = node.pop_random_element(list=original_list, seed=[42])
|
||||
result2, item2 = node.pop_random_element(list=original_list, seed=[42])
|
||||
assert item1 == item2
|
||||
assert result1 == result2
|
||||
|
||||
|
||||
def test_first():
|
||||
node = DataListFirst()
|
||||
|
||||
@@ -151,6 +151,11 @@ def test_dict_pop_random(dict_type):
|
||||
assert empty_value is None
|
||||
assert empty_success is False
|
||||
|
||||
# Same seed should produce the same popped key/value
|
||||
result1 = node.pop_random(my_dict, seed=42)
|
||||
result2 = node.pop_random(my_dict, seed=42)
|
||||
assert result1 == result2
|
||||
|
||||
|
||||
@pytest.mark.parametrize("dict_type", _tested_dict_types)
|
||||
def test_dict_keys(dict_type):
|
||||
|
||||
@@ -87,6 +87,13 @@ def test_list_pop_random():
|
||||
# Test with empty list
|
||||
assert node.pop_random_element([]) == ([], None)
|
||||
|
||||
# Same seed should produce the same popped item
|
||||
result1, item1 = node.pop_random_element(original_list, seed=42)
|
||||
result2, item2 = node.pop_random_element(original_list, seed=42)
|
||||
assert item1 == item2
|
||||
assert result1 == result2
|
||||
assert original_list == [1, 2, 3, 4] # Input not mutated
|
||||
|
||||
|
||||
def test_list_first():
|
||||
node = ListFirst()
|
||||
|
||||
@@ -132,6 +132,13 @@ def test_set_pop_random():
|
||||
empty_set = set()
|
||||
assert node.pop_random_element(empty_set) == (set(), None)
|
||||
|
||||
# Same seed should produce the same popped item for the same set contents
|
||||
seeded_set = {1, 2, 3, 4}
|
||||
result1, item1 = node.pop_random_element(seeded_set, seed=42)
|
||||
result2, item2 = node.pop_random_element(seeded_set, seed=42)
|
||||
assert item1 == item2
|
||||
assert result1 == result2
|
||||
|
||||
|
||||
def test_set_union():
|
||||
node = SetUnion()
|
||||
|
||||
Reference in New Issue
Block a user