diff --git a/checks/generators/generators1.py b/checks/generators/generators1.py index 4f3822e..dab7bcb 100644 --- a/checks/generators/generators1.py +++ b/checks/generators/generators1.py @@ -1,4 +1,5 @@ -assert list(count_up_to(4)) == [1, 2, 3, 4] -assert list(count_up_to(1)) == [1] -assert list(count_up_to(0)) == [] -print("generators1 ✓") +# generators1.py +assert list(count_up_to(4)) == [1, 2, 3, 4], "Expected list(count_up_to(4)) to be [1, 2, 3, 4]" +assert list(count_up_to(1)) == [1], "Expected list(count_up_to(1)) to be [1]" +assert list(count_up_to(0)) == [], "Expected list(count_up_to(0)) to be [] (no elements when limit is 0)" +print("generators1 ✓") \ No newline at end of file diff --git a/checks/generators/generators10.py b/checks/generators/generators10.py index c5cabcd..8e2c955 100644 --- a/checks/generators/generators10.py +++ b/checks/generators/generators10.py @@ -1,7 +1,7 @@ -assert list(running_total([1, 2, 3, 4])) == [1, 3, 6, 10] -assert list(running_total([10, -3, 7])) == [10, 7, 14] -assert list(running_total([])) == [] -assert list(running_total([5])) == [5] -# Works as a streaming pipeline over a generator input. -assert list(running_total(x * x for x in range(1, 5))) == [1, 5, 14, 30] -print("generators10 ✓") +# generators10.py +assert list(running_total([1, 2, 3, 4])) == [1, 3, 6, 10], "Expected list(running_total([1, 2, 3, 4])) to be [1, 3, 6, 10]" +assert list(running_total([10, -3, 7])) == [10, 7, 14], "Expected list(running_total([10, -3, 7])) to be [10, 7, 14]" +assert list(running_total([])) == [], "Expected list(running_total([])) to be [] (no elements to sum)" +assert list(running_total([5])) == [5], "Expected list(running_total([5])) to be [5]" +assert list(running_total(x * x for x in range(1, 5))) == [1, 5, 14, 30], "Expected running_total over a generator input (1, 4, 9, 16) to yield [1, 5, 14, 30]" +print("generators10 ✓") \ No newline at end of file diff --git a/checks/generators/generators3.py b/checks/generators/generators3.py index 8dc4615..94c70b9 100644 --- a/checks/generators/generators3.py +++ b/checks/generators/generators3.py @@ -1,4 +1,5 @@ +# generators3.py — first assert already has a message, leave it exactly as-is assert collected == [2, 4, 6, 8], f"expected [2, 4, 6, 8], got {collected}" -assert list(evens_up_to(5)) == [2, 4] -assert list(evens_up_to(1)) == [] -print("generators3 ✓") +assert list(evens_up_to(5)) == [2, 4], "Expected list(evens_up_to(5)) to be [2, 4]" +assert list(evens_up_to(1)) == [], "Expected list(evens_up_to(1)) to be [] (no even numbers \u2264 1)" +print("generators3 ✓") \ No newline at end of file diff --git a/checks/generators/generators6.py b/checks/generators/generators6.py index 8aabc65..4c6834f 100644 --- a/checks/generators/generators6.py +++ b/checks/generators/generators6.py @@ -1,8 +1,8 @@ +# generators6.py — first assert unchanged; big/1000 are plain variables, safe to echo assert first_ten == list(range(1, 11)), ( f"expected [1..10], got {first_ten}" ) -# Confirm the generator really is infinite: pull 1000 values. big = list(itertools.islice(natural_numbers(), 1000)) -assert len(big) == 1000 -assert big[-1] == 1000 -print("generators6 ✓") +assert len(big) == 1000, f"Expected 1000 values pulled from natural_numbers(), got {len(big)}" +assert big[-1] == 1000, f"Expected the 1000th value to be 1000, got {big[-1]!r}" +print("generators6 ✓") \ No newline at end of file diff --git a/checks/generators/generators7.py b/checks/generators/generators7.py index a043998..66b0e43 100644 --- a/checks/generators/generators7.py +++ b/checks/generators/generators7.py @@ -1,11 +1,11 @@ +# generators7.py — first assert unchanged import itertools first8 = list(itertools.islice(fibonacci(), 8)) assert first8 == [0, 1, 1, 2, 3, 5, 8, 13], ( f"expected [0, 1, 1, 2, 3, 5, 8, 13], got {first8}" ) -# Confirm more terms keep coming. first15 = list(itertools.islice(fibonacci(), 15)) -assert len(first15) == 15 -assert first15[-1] == 377 -print("generators7 ✓") +assert len(first15) == 15, f"Expected 15 terms from fibonacci(), got {len(first15)}" +assert first15[-1] == 377, f"Expected the 15th Fibonacci term to be 377, got {first15[-1]!r}" +print("generators7 ✓") \ No newline at end of file diff --git a/checks/generators/generators8.py b/checks/generators/generators8.py index d1e027d..2e3e7c8 100644 --- a/checks/generators/generators8.py +++ b/checks/generators/generators8.py @@ -1,8 +1,8 @@ -assert list(Countdown(3)) == [3, 2, 1] -assert list(Countdown(1)) == [1] -assert list(Countdown(5)) == [5, 4, 3, 2, 1] -# Should be re-iterable: a fresh iteration each time. +# generators8.py — Countdown is the class under test, no re-invocation in messages +assert list(Countdown(3)) == [3, 2, 1], "Expected list(Countdown(3)) to be [3, 2, 1]" +assert list(Countdown(1)) == [1], "Expected list(Countdown(1)) to be [1]" +assert list(Countdown(5)) == [5, 4, 3, 2, 1], "Expected list(Countdown(5)) to be [5, 4, 3, 2, 1]" cd = Countdown(3) -assert list(cd) == [3, 2, 1] -assert list(cd) == [3, 2, 1] -print("generators8 ✓") +assert list(cd) == [3, 2, 1], "Expected first iteration over cd to be [3, 2, 1]" +assert list(cd) == [3, 2, 1], "Expected second iteration over cd to also be [3, 2, 1] \u2014 Countdown should be re-iterable, not exhausted after one pass" +print("generators8 ✓") \ No newline at end of file diff --git a/checks/generators/generators9.py b/checks/generators/generators9.py index 691b7eb..2f3cd9d 100644 --- a/checks/generators/generators9.py +++ b/checks/generators/generators9.py @@ -1,13 +1,13 @@ -assert list(Counter(4)) == [0, 1, 2, 3] -assert list(Counter(1)) == [0] -assert list(Counter(0)) == [] -# StopIteration must be raised at the right moment. +# generators9.py +assert list(Counter(4)) == [0, 1, 2, 3], "Expected list(Counter(4)) to be [0, 1, 2, 3]" +assert list(Counter(1)) == [0], "Expected list(Counter(1)) to be [0]" +assert list(Counter(0)) == [], "Expected list(Counter(0)) to be [] (no elements when stop is 0)" c = Counter(2) -assert next(c) == 0 -assert next(c) == 1 +assert next(c) == 0, "Expected the first value from Counter(2) to be 0" +assert next(c) == 1, "Expected the second value from Counter(2) to be 1" try: next(c) raise AssertionError("expected StopIteration after stop elements") except StopIteration: pass -print("generators9 ✓") +print("generators9 ✓") \ No newline at end of file