Spaces:
Sleeping
Sleeping
import pytest | |
from llm_studio.src.order import Order | |
def test_order_initialization(): | |
# Test empty initialization | |
order1 = Order() | |
assert len(order1) == 0 | |
# Test initialization with keys | |
keys = ["a", "b", "c"] | |
order2 = Order(keys) | |
assert list(order2) == keys | |
def test_append(): | |
order = Order() | |
order.append("a") | |
assert list(order) == ["a"] | |
order.append("b") | |
assert list(order) == ["a", "b"] | |
with pytest.raises(ValueError): | |
order.append("a") # Attempting to add a duplicate key | |
def test_extend(): | |
order = Order(["a", "b"]) | |
order.extend(["c", "d"]) | |
assert list(order) == ["a", "b", "c", "d"] | |
with pytest.raises(ValueError): | |
order.extend(["e", "a"]) # Attempting to add a duplicate key | |
def test_insert(): | |
order = Order(["a", "b", "c"]) | |
order.insert("x", before="b") | |
assert list(order) == ["a", "x", "b", "c"] | |
order.insert("y", after="c") | |
assert list(order) == ["a", "x", "b", "c", "y"] | |
order.insert("z", "w", before="a") | |
assert list(order) == ["z", "w", "a", "x", "b", "c", "y"] | |
with pytest.raises(ValueError): | |
order.insert("v", before="non_existent") | |
with pytest.raises(ValueError): | |
order.insert("v", after="non_existent") | |
with pytest.raises(ValueError): | |
# Attempting to specify both before and after | |
order.insert("v", before="a", after="b") | |
with pytest.raises(ValueError): | |
order.insert("a") # Attempting to add a duplicate key | |
with pytest.raises(ValueError): | |
order.insert("v") # Not specifying before or after | |
def test_getitem(): | |
order = Order(["a", "b", "c"]) | |
assert order[0] == "a" | |
assert order[1] == "b" | |
assert order[2] == "c" | |
with pytest.raises(IndexError): | |
order[3] | |
def test_len(): | |
order = Order() | |
assert len(order) == 0 | |
order.append("a") | |
assert len(order) == 1 | |
order.extend(["b", "c"]) | |
assert len(order) == 3 | |
def test_iter(): | |
keys = ["a", "b", "c"] | |
order = Order(keys) | |
assert list(iter(order)) == keys | |
def test_complex_scenario(): | |
order = Order(["dataset", "training", "validation", "logging"]) | |
order.insert("architecture", before="training") | |
order.insert("environment", after="validation") | |
assert list(order) == [ | |
"dataset", | |
"architecture", | |
"training", | |
"validation", | |
"environment", | |
"logging", | |
] | |
order.append("results") | |
order.extend(["analysis", "reporting"]) | |
assert list(order) == [ | |
"dataset", | |
"architecture", | |
"training", | |
"validation", | |
"environment", | |
"logging", | |
"results", | |
"analysis", | |
"reporting", | |
] | |
with pytest.raises(ValueError): | |
order.insert("dataset", before="reporting") # Attempting to add a duplicate key | |