Finished
11def recite(start_verse, end_verse):
2 pass
2 # Edge Case: Invalid input where start_verse or end_verse is out of range
3 if start_verse < 1 or end_verse > 8 or start_verse > end_verse:
4 raise ValueError("Invalid verse range")
5
6 animals = [
7 "fly",
8 "spider",
9 "bird",
10 "cat",
11 "dog",
12 "goat",
13 "cow",
14 "horse"
15 ]
16
17 reactions = [
18 "",
19 "It wriggled and jiggled and tickled inside her.",
20 "How absurd to swallow a bird!",
21 "Imagine that, to swallow a cat!",
22 "What a hog, to swallow a dog!",
23 "Just opened her throat and swallowed a goat!",
24 "I don't know how she swallowed a cow!",
25 "She's dead, of course!"
26 ]
27
28 verses = []
29
30 # Edge Case: Single verse requested
31 for i in range(start_verse, end_verse + 1):
32 verse = []
33 animal = animals[i-1]
34 verse.append(f"I know an old lady who swallowed a {animal}.")
35
36 # Edge Case: Last verse has special ending
37 if i == 8:
38 verse.append(reactions[i-1])
39 verses.append(verse)
40 continue
41
42 if reactions[i-1]:
43 verse.append(reactions[i-1])
44
45 # Edge Case: First verse has no chain
46 if i > 1:
47 for j in range(i-1, 0, -1):
48 if j == 2:
49 verse.append(f"She swallowed the {animals[j]} to catch the {animals[j-1]} that wriggled and jiggled and tickled inside her.")
50 else:
51 verse.append(f"She swallowed the {animals[j]} to catch the {animals[j-1]}.")
52
53 verse.append("I don't know why she swallowed the fly. Perhaps she'll die.")
54 verses.append(verse)
55
56 # Edge Case: Formatting output as list of strings per verse
57 result = []
58 for i, verse in enumerate(verses):
59 result.extend(verse)
60 # Edge Case: Adding empty line between verses except for the last one
61 if i < len(verses) - 1:
62 result.append("")
63
64 return result
65
66# Handled Edge Cases: Invalid input where start_verse or end_verse is out of range, Single verse requested, Last verse has special ending, First verse has no chain, Formatting output as list of strings per verse, Adding empty line between verses except for the last one
Test NameStatus
test_bird
Pass
test_cat
Pass
test_cow
Pass
test_dog
Pass
test_fly
Pass
test_full_song
Pass
test_goat
Pass
test_horse
Pass
test_multiple_verses
Pass
test_spider
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.