This commit is contained in:
Andreas Koepf 2025-01-31 12:16:08 +01:00
parent 4ac41bd174
commit b49167c61c
2 changed files with 17 additions and 27 deletions

View file

@ -65,12 +65,12 @@ def test_base_conversion_dataset_items():
# Verify conversion correctness
decimal_value = item["metadata"]["decimal_value"]
target_base = item["metadata"]["target_base"]
# Use same conversion logic as implementation
if target_base == 16:
expected = format(decimal_value, 'x')
expected = format(decimal_value, "x")
elif target_base == 2:
expected = format(decimal_value, 'b')
expected = format(decimal_value, "b")
else:
# Manual conversion for other bases
n = decimal_value
@ -78,8 +78,7 @@ def test_base_conversion_dataset_items():
while n:
digits.append(int(n % target_base))
n //= target_base
expected = ''.join(str(d) if d < 10 else chr(ord('a') + d - 10)
for d in reversed(digits) or [0])
expected = "".join(str(d) if d < 10 else chr(ord("a") + d - 10) for d in reversed(digits) or [0])
assert item["answer"] == expected
@ -97,14 +96,7 @@ def test_base_conversion_dataset_iteration():
def test_base_conversion_validity():
"""Test that generated numbers are valid for their bases"""
config = BaseConversionConfig(
min_base=2,
max_base=36,
min_value=0,
max_value=1000,
size=100,
seed=42
)
config = BaseConversionConfig(min_base=2, max_base=36, min_value=0, max_value=1000, size=100, seed=42)
dataset = BaseConversionDataset(config)
def is_valid_for_base(num_str: str, base: int) -> bool:
@ -113,12 +105,12 @@ def test_base_conversion_validity():
for i in range(len(dataset)):
item = dataset[i]
assert is_valid_for_base(item["metadata"]["source_repr"],
item["metadata"]["source_base"]), \
f"Invalid source number {item['metadata']['source_repr']} for base {item['metadata']['source_base']}"
assert is_valid_for_base(item["metadata"]["target_repr"],
item["metadata"]["target_base"]), \
f"Invalid target number {item['metadata']['target_repr']} for base {item['metadata']['target_base']}"
assert is_valid_for_base(
item["metadata"]["source_repr"], item["metadata"]["source_base"]
), f"Invalid source number {item['metadata']['source_repr']} for base {item['metadata']['source_base']}"
assert is_valid_for_base(
item["metadata"]["target_repr"], item["metadata"]["target_base"]
), f"Invalid target number {item['metadata']['target_repr']} for base {item['metadata']['target_base']}"
def test_base_conversion_special_bases():