COMP3311 23T1 Assignment 2
Example Test Cases
Database Systems
Last updated: Thursday 6th April 10:02pm
Most recent changes are shown in red ... older changes are shown in brown.

[Assignment Spec]  [Database Design]  [Examples]  [Testing]  [Submitting]  [Fixes+Updates]


Introduction

This document contains examples of output from the various scripts that you are required to develop.




NOTE: When autotesting and marking, the autotester will ignore the indentation and alignment of the output
As long as the actual text of the output is correct, the autotester will accept it.

My Pokemon Example

Note that each level of indentation is represented by a single tab character.

following are a selection of example outputs from the my_pokemon script.

./my_pokemon 11243 <<< $'1\n1\n1\n1\n1\n1\n1'

Select an option from the menu below by entering its number:
 1) Sword
 2) Ultra Moon
 3) Diamond
 4) Emerald
 5) Omega Ruby
 6) Violet
 7) Fire Red
 8) Scarlet
 9) Silver
10) Gold
> Selection: 1

Select an option from the menu below by entering its number:
 1) Ribombee
 2) Mega Tyranitar
 3) Milcery
 4) Galarian Farfetch'd
 5) Araquanid
 6) Sigilyph
 7) Duraludon
 8) Mega Steelix
 9) Sneasel
10) Toxel
> Selection: 1

Select an option from the menu below by entering its number:
1) Honey Gather
2) Shield Dust
3) Sweet Veil
> Selection: 1

Select an option from the menu below by entering its number:
 1) Absorb
 2) Aromatherapy
 3) Bug Buzz
 4) Covet
 5) Dazzling Gleam
 6) Draining Kiss
 7) Fairy Wind
 8) Pollen Puff
 9) Quiver Dance
10) Struggle Bug
11) Stun Spore
12) Sweet Scent
13) Switcheroo
> Selection: 1

Select an option from the menu below by entering its number:
 1) Aromatherapy
 2) Bug Buzz
 3) Covet
 4) Dazzling Gleam
 5) Draining Kiss
 6) Fairy Wind
 7) Pollen Puff
 8) Quiver Dance
 9) Struggle Bug
10) Stun Spore
11) Sweet Scent
12) Switcheroo
> Selection: 1

Select an option from the menu below by entering its number:
 1) Bug Buzz
 2) Covet
 3) Dazzling Gleam
 4) Draining Kiss
 5) Fairy Wind
 6) Pollen Puff
 7) Quiver Dance
 8) Struggle Bug
 9) Stun Spore
10) Sweet Scent
11) Switcheroo
> Selection: 1

Select an option from the menu below by entering its number:
 1) Covet
 2) Dazzling Gleam
 3) Draining Kiss
 4) Fairy Wind
 5) Pollen Puff
 6) Quiver Dance
 7) Struggle Bug
 8) Stun Spore
 9) Sweet Scent
10) Switcheroo
> Selection: 1

Here is your new Pokemon (from Pokemon Sword):

Name: Ribombee
Species: Bee Fly Pokémon
Type: Bug + Fairy
Pokedex Number: 188 (743)

Ability: Honey Gather

Moves:
        Absorb       [Grass]  (Category: Special, Power: 20, Accuracy: 100)
        Aromatherapy [Grass]  (Category: Status, Power: None, Accuracy: None)
        Bug Buzz     [Bug]    (Category: Special, Power: 90, Accuracy: 100)
        Covet        [Normal] (Category: Physical, Power: 60, Accuracy: 100)

$ ./my_pokemon 11243 <<< $'7\n3\n2\n5\n2\n5\n2'

Select an option from the menu below by entering its number:
 1) Sword
 2) Ultra Moon
 3) Diamond
 4) Emerald
 5) Omega Ruby
 6) Violet
 7) Fire Red
 8) Scarlet
 9) Silver
10) Gold
> Selection: 7

Select an option from the menu below by entering its number:
 1) Farfetch'd
 2) Nidoqueen
 3) Tentacool
 4) Graveler
 5) Tauros
 6) Porygon
 7) Alolan Vulpix
 8) Butterfree
 9) Mega Charizard Y
10) Ponyta
> Selection: 3

Select an option from the menu below by entering its number:
1) Clear Body
2) Liquid Ooze
3) Rain Dish
> Selection: 2

Select an option from the menu below by entering its number:
1) Acid
2) Barrier
3) Bubble Beam
4) Constrict
5) Hydro Pump
6) Poison Sting
7) Screech
8) Supersonic
9) Wrap
> Selection: 5

Select an option from the menu below by entering its number:
1) Acid
2) Barrier
3) Bubble Beam
4) Constrict
5) Poison Sting
6) Screech
7) Supersonic
8) Wrap
> Selection: 2

Select an option from the menu below by entering its number:
1) Acid
2) Bubble Beam
3) Constrict
4) Poison Sting
5) Screech
6) Supersonic
7) Wrap
> Selection: 5

Select an option from the menu below by entering its number:
1) Acid
2) Bubble Beam
3) Constrict
4) Poison Sting
5) Supersonic
6) Wrap
> Selection: 2

Here is your new Pokemon (from Pokemon Fire Red):

Name: Tentacool
Species: Jellyfish Pokémon
Type: Water + Poison
Pokedex Number: 72 (72)

Ability: Liquid Ooze

Moves:
        Hydro Pump  [Water]   (Category: Special, Power: 110, Accuracy: 80)
        Barrier     [Psychic] (Category: Status, Power: None, Accuracy: None)
        Screech     [Normal]  (Category: Status, Power: None, Accuracy: 85)
        Bubble Beam [Water]   (Category: Special, Power: 65, Accuracy: 100)

$ ./my_pokemon 2252 <<< $'4\n7\n3\n10\n5\n2\n4'

Select an option from the menu below by entering its number:
 1) Soul Silver
 2) Ultra Sun
 3) The Crown Tundra
 4) Platinum
 5) Black 2
 6) Shield
 7) Scarlet
 8) Emerald
 9) The Isle of Armor
10) Fire Red
> Selection: 4

Select an option from the menu below by entering its number:
 1) Octillery
 2) Bronzor
 3) Umbreon
 4) Snorunt
 5) Burmy - Trash Cloak
 6) Duskull
 7) Azumarill
 8) Golbat
 9) Graveler
10) Mega Gardevoir
> Selection: 7

Select an option from the menu below by entering its number:
1) Huge Power
2) Sap Sipper
3) Thick Fat
> Selection: 3

Select an option from the menu below by entering its number:
 1) Aqua Ring
 2) Aqua Tail
 3) Bubble Beam
 4) Defense Curl
 5) Double-Edge
 6) Hydro Pump
 7) Rain Dance
 8) Rollout
 9) Tackle
10) Tail Whip
11) Water Gun
> Selection: 10

Select an option from the menu below by entering its number:
 1) Aqua Ring
 2) Aqua Tail
 3) Bubble Beam
 4) Defense Curl
 5) Double-Edge
 6) Hydro Pump
 7) Rain Dance
 8) Rollout
 9) Tackle
10) Water Gun
> Selection: 5

Select an option from the menu below by entering its number:
1) Aqua Ring
2) Aqua Tail
3) Bubble Beam
4) Defense Curl
5) Hydro Pump
6) Rain Dance
7) Rollout
8) Tackle
9) Water Gun
> Selection: 2

Select an option from the menu below by entering its number:
1) Aqua Ring
2) Bubble Beam
3) Defense Curl
4) Hydro Pump
5) Rain Dance
6) Rollout
7) Tackle
8) Water Gun
> Selection: 4

Here is your new Pokemon (from Pokemon Platinum):

Name: Azumarill
Species: Aqua Rabbit Pokémon
Type: Water + Fairy
Pokedex Number: 126 (184)

Ability: Thick Fat

Moves:
        Tail Whip   [Normal] (Category: Status, Power: None, Accuracy: 100)
        Double-Edge [Normal] (Category: Physical, Power: 120, Accuracy: 100)
        Aqua Tail   [Water]  (Category: Physical, Power: 90, Accuracy: 90)
        Hydro Pump  [Water]  (Category: Special, Power: 110, Accuracy: 80)

$ ./my_pokemon 17 <<< $'4\n5\n12\n9\n3\n7'

Select an option from the menu below by entering its number:
 1) Let's Go, Pikachu
 2) Omega Ruby
 3) Brilliant Diamond
 4) Violet
 5) The Isle of Armor
 6) Platinum
 7) Black
 8) The Crown Tundra
 9) Sword
10) Y
> Selection: 4

Select an option from the menu below by entering its number:
 1) Qwilfish
 2) Heracross
 3) Glaceon
 4) Gholdengo
 5) Tatsugiri - Droopy Form
 6) Fomantis
 7) Avalugg
 8) Cubchoo
 9) Chansey
10) Toxapex
> Selection: 5

Select an option from the menu below by entering its number:
 1) Dragon Pulse
 2) Harden
 3) Helping Hand
 4) Memento
 5) Mirror Coat
 6) Muddy Water
 7) Nasty Plot
 8) Soak
 9) Splash
10) Taunt
11) Water Gun
12) Water Pulse
> Selection: 12

Select an option from the menu below by entering its number:
 1) Dragon Pulse
 2) Harden
 3) Helping Hand
 4) Memento
 5) Mirror Coat
 6) Muddy Water
 7) Nasty Plot
 8) Soak
 9) Splash
10) Taunt
11) Water Gun
> Selection: 9

Select an option from the menu below by entering its number:
 1) Dragon Pulse
 2) Harden
 3) Helping Hand
 4) Memento
 5) Mirror Coat
 6) Muddy Water
 7) Nasty Plot
 8) Soak
 9) Taunt
10) Water Gun
> Selection: 3

Select an option from the menu below by entering its number:
1) Dragon Pulse
2) Harden
3) Memento
4) Mirror Coat
5) Muddy Water
6) Nasty Plot
7) Soak
8) Taunt
9) Water Gun
> Selection: 7

Here is your new Pokemon (from Pokemon Violet):

Name: Tatsugiri - Droopy Form
Species: Mimicry Pokémon
Type: Dragon + Water
Pokedex Number: 375 (978)

Ability: None

Moves:
        Water Pulse  [Water]  (Category: Special, Power: 60, Accuracy: 100)
        Splash       [Normal] (Category: Status, Power: None, Accuracy: None)
        Helping Hand [Normal] (Category: Status, Power: None, Accuracy: None)
        Soak         [Water]  (Category: Status, Power: None, Accuracy: 100)

$ ./my_pokemon 3 <<< $'4\n7\n2\n1'

Select an option from the menu below by entering its number:
 1) Brilliant Diamond
 2) Emerald
 3) Pearl
 4) Ultra Sun
 5) Fire Red
 6) Platinum
 7) X
 8) Omega Ruby
 9) Shining Pearl
10) Sapphire
> Selection: 4

Select an option from the menu below by entering its number:
 1) Corsola
 2) Dawn Wings Necrozma
 3) Mareep
 4) Oricorio - Pom-Pom Style
 5) Haunter
 6) Komala
 7) Smeargle
 8) Florges
 9) Hisuian Growlithe
10) Tauros - Aqua Breed
> Selection: 7

Select an option from the menu below by entering its number:
1) Moody
2) Own Tempo
3) Technician
> Selection: 2

Select an option from the menu below by entering its number:
1) Sketch
> Selection: 1

Here is your new Pokemon (from Pokemon Ultra Sun):

Name: Smeargle
Species: Painter Pokémon
Type: Normal
Pokedex Number: 70 (235)

Ability: Own Tempo

Moves:
        Sketch [Normal] (Category: Status, Power: None, Accuracy: None)

Note that the games "The Crown Tundra" and "The Isle of Armor" will not be tested.
As they are not real games, they do not have move data associated with them.

Possible Evolutions Example

Note that each level of indentation is represented by a single tab character.
The evolution requirements emulate a (sideways) tree structure.

Note that a OR will never appear under an AND.
That is to say, the following is not possible:

                Level: 14
        OR
                NOT Region: Hisui
AND
                Level: 17
        OR
                Region: Hisui

There will also never be more than one layer of ANDs, and one layer of ORs.
That is to say, the following is not possible:

                Level: 14
        OR
                NOT Region: Hisui
OR
                Level: 17
        OR
                Region: Hisui

following are a selection of example outputs from the possible_evolutions script.

./possible_evolutions Dreepy

'Dreepy' doesn't have any pre-evolutions.

'Dreepy' can evolve into:
        'Drakloak' when the following requirements are satisfied:
                Level: 50

$ ./possible_evolutions Monferno

'Monferno' can evolve from:
        'Chimchar' when the following requirements are satisfied:
                Level: 14

'Monferno' can evolve into:
        'Infernape' when the following requirements are satisfied:
                Level: 36

$ ./possible_evolutions Quilava

'Quilava' can evolve from:
        'Cyndaquil' when the following requirements are satisfied:
                                Level: 14
                        AND
                                NOT Region: Hisui
                OR
                                Level: 17
                        AND
                                Region: Hisui

'Quilava' can evolve into:
        'Typhlosion' when the following requirements are satisfied:
                        Level: 36
                AND
                        NOT Region: Hisui

        'Hisuian Typhlosion' when the following requirements are satisfied:
                        Level: 36
                AND
                        Region: Hisui

$ ./possible_evolutions Eevee

'Eevee' doesn't have any pre-evolutions.

'Eevee' can evolve into:
        'Vaporeon' when the following requirements are satisfied:
                Use Item: Water Stone

        'Jolteon' when the following requirements are satisfied:
                Use Item: Thunder Stone

        'Flareon' when the following requirements are satisfied:
                Use Item: Fire Stone

        'Espeon' when the following requirements are satisfied:
                        High Friendship
                AND
                        Time of Day: Day

        'Umbreon' when the following requirements are satisfied:
                        High Friendship
                AND
                        Time of Day: Night

        'Leafeon' when the following requirements are satisfied:
                        Use Item: Leaf Stone
                OR
                        Area: Mossy Rock

        'Glaceon' when the following requirements are satisfied:
                        Use Item: Ice Stone
                OR
                        Area: Icy Rock

        'Sylveon' when the following requirements are satisfied:
                        High Friendship
                AND
                        Know Move Type: Fairy

$ ./possible_evolutions Nincada

'Nincada' doesn't have any pre-evolutions.

'Nincada' can evolve into:
        'Ninjask' when the following requirements are satisfied:
                Level: 20

        'Shedinja' when the following requirements are satisfied:
                        Level: 20
                AND
                        Pokemon in Party: Empty
                AND
                        Has Pokeballs

$ ./possible_evolutions Ursaluna

'Ursaluna' can evolve from:
        'Ursaring' when the following requirements are satisfied:
                        Time of Day: Night
                AND
                        Moon Phase: Full Moon
                AND
                        Region: Hisui
                AND
                        Use Item: Peat Block

'Ursaluna' doesn't have any post-evolutions.

$ ./possible_evolutions Porygon2

'Porygon2' can evolve from:
        'Porygon' when the following requirements are satisfied:
                        Trade
                AND
                        Hold Item: Upgrade

'Porygon2' can evolve into:
        'Porygon-Z' when the following requirements are satisfied:
                        Trade
                AND
                        Hold Item: Dubious Disc

$ ./possible_evolutions 'Basculin - White-Striped Form'

'Basculin - White-Striped Form' doesn't have any pre-evolutions.

'Basculin - White-Striped Form' can evolve into:
        'Basculegion - Male' when the following requirements are satisfied:
                        Gender: Male
                AND
                        Recoil Damage: 294

        'Basculegion - Female' when the following requirements are satisfied:
                        Gender: Female
                AND
                        Recoil Damage: 294

following are a selection of error conditions and their corresponding error messages that your script be able to handle:

./possible_evolutions Fluffluff

'Fluffluff' isn't a Pokemon that exists.

Pokemon Density Example

Note that each level of indentation is represented by a single tab character.

following are a selection of example outputs from the pokemon_density script.

./pokemon_density Kanto

The average density of Pokemon within each location in the 'Kanto' region:

        Mt. Ember:        0.7893
        Sevault Canyon:   0.4107
        Mt. Moon:         0.3953
        Seafoam Islands:  0.3657
        Icefall Cave:     0.3556
        Kindle Road:      0.3191
        Cerulean Cave:    0.2819
        Rock Tunnel:      0.2759
        Safari Zone:      0.2742
        Route 22:         0.2460
        Ruin Valley:      0.2432
        Route 21:         0.2370
        Route 11:         0.2296
        Route 10:         0.2204
        Route 6:          0.2159
        Route 12:         0.2087
        Route 13:         0.2052
        Route 4:          0.1988
        Route 24:         0.1958
        Route 23:         0.1923
        Route 20:         0.1845
        Route 2:          0.1801
        Route 18:         0.1761
        Route 25:         0.1757
        Route 19:         0.1731
        Treasure Beach:   0.1694
        Five Island:      0.1624
        One Island:       0.1594
        Five Isle Meadow: 0.1590
        Water Path:       0.1587
        Bond Bridge:      0.1576
        Power Plant:      0.1517
        Tanoby Ruins:     0.1501
        Route 17:         0.1471
        Victory Road:     0.1442
        Memorial Pillar:  0.1408
        Pokémon Mansion:  0.1394
        Resort Gorgeous:  0.1378
        Water Labyrinth:  0.1378
        Vermilion City:   0.1372
        Route 9:          0.1359
        Route 3:          0.1355
        Trainer Tower:    0.1348
        Outcast Island:   0.1348
        Green Path:       0.1348
        Cinnabar Island:  0.1313
        Four Island:      0.1273
        Route 5:          0.1214
        Route 1:          0.1204
        Pallet Town:      0.1182
        Route 16:         0.1142
        Route 7:          0.1108
        Cerulean City:    0.1105
        Route 8:          0.1074
        Cape Brink:       0.1055
        Berry Forest:     0.1041
        Viridian Forest:  0.0955
        Fuchsia City:     0.0953
        Pewter City:      0.0926
        Lavender Town:    0.0926
        Viridian City:    0.0876
        Diglett's Cave:   0.0786
        Route 14:         0.0705
        Route 15:         0.0661
        Celadon City:     0.0549
        Canyon Entrance:  0.0467
        Pattern Bush:     0.0432
        Pokémon Tower:    0.0165
        Lost Cave:        0.0051
        Three Isle Port:  0.0016
        Roaming Kanto:    0.0000

The following locations in the 'Kanto' region have no wild Pokemon encounters:

        Dotted Hole
        Indigo Plateau
        Navel Rock
        Rocket Hideout
        Rocket Warehouse
        Route 26
        Route 27
        Route 28
        SS Anne
        Saffron City
        Seven Island
        Silph Co.
        Six Island
        Three Island
        Three Isle Path
        Tohjo Falls
        Two Island
        Underground Path 5-6
        Underground Path 7-8

$ ./pokemon_density Galar

The average density of Pokemon within each location in the 'Galar' region:

        Giant's Cap:         8.4165
        Stony Wilderness:    6.2758
        Snowslide Slope:     5.9417
        South Lake Miloch:   5.7355
        North Lake Miloch:   5.3855
        West Lake Axewell:   4.9628
        Rolling Fields:      4.6979
        Bridge Field:        4.5472
        Ballimere Lake:      4.5200
        Giant's Mirror:      4.4843
        East Lake Axewell:   4.4634
        Loop Lagoon:         3.9095
        Giant's Seat:        3.4472
        Three-Point Pass:    3.4203
        Frigid Sea:          3.3557
        Giant's Bed:         3.0825
        Giant's Foot:        3.0704
        Old Cemetery:        2.9589
        Motostoke Riverbank: 2.9341
        Dappled Grove:       2.8613
        Slippery Slope:      2.7300
        Challenge Beach:     2.6085
        Lake of Outrage:     2.5923
        Courageous Cavern:   2.5062
        Fields of Honor:     2.1428
        Hammerlocke Hills:   2.1057
        Dusty Bowl:          1.9267
        Soothing Wetlands:   1.9152
        Challenge Road:      1.9104
        Frostpoint Field:    1.8560
        Workout Sea:         1.8496
        Axew's Eye:          1.8461
        Forest of Focus:     1.8182
        Training Lowlands:   1.7634
        Route 3:             1.6546
        Watchtower Ruins:    1.6514
        Honeycalm Island:    1.6382
        Stepping-Stone Sea:  1.6101
        Route 2:             1.5292
        Insular Sea:         1.2348
        Lakeside Cave:       0.9517
        Galar Mine:          0.9459
        Route 9:             0.9301
        Route 4:             0.9170
        Slumbering Weald:    0.8449
        Galar Mine No. 2:    0.8210
        Honeycalm Sea:       0.7811
        Roaring-Sea Caves:   0.7486
        Route 5:             0.6928
        Route 6:             0.6064
        Potbottom Desert:    0.5797
        Route 8:             0.5494
        Brawlers' Cave:      0.4643
        Route 10:            0.4630
        Route 7:             0.4526
        Route 1:             0.4214
        Warm-Up Tunnel:      0.3703
        Path to the Peak:    0.3635
        Motostoke Outskirts: 0.3357
        Tunnel to the Top:   0.3095
        Motostoke:           0.2593
        Glimwood Tangle:     0.2275
        Hulbury:             0.1415

The following locations in the 'Galar' region have no wild Pokemon encounters:

        Ballonlea
        Battle Tower
        Circhester
        Crown Shrine
        Dyna Tree Hill
        Freezington
        Hammerlocke
        Iceberg Ruins
        Iron Ruins
        Master Dojo
        Max Lair
        Postwick
        Rock Peak Ruins
        Spikemuth
        Split-Decision Ruins
        Steamdrift Way
        Stow-on-Side
        Tower of Darkness
        Tower of Waters
        Turffield
        Wedgehurst
        Wyndon

$ ./pokemon_density Sinnoh

The average density of Pokemon within each location in the 'Sinnoh' region:

        Spacious Cave:       1.2393
        Sunlit Cavern:       1.2304
        Mt. Coronet:         1.1388
        Still-Water Cavern:  1.1356
        Riverbank Cave:      1.1356
        Grassland Cave:      1.0866
        Rocky Cave:          0.9427
        Ruin Maniac Tunnel:  0.8617
        Big Bluff Cavern:    0.7989
        Whiteout Cave:       0.7948
        Fountainspring Cave: 0.7495
        Icy Cave:            0.7099
        Glacial Cavern:      0.7033
        Route 205:           0.7017
        Route 212:           0.6601
        Wayward Cave:        0.6375
        Great Marsh:         0.6196
        Route 204:           0.5927
        Dazzling Cave:       0.5900
        Stargleam Cavern:    0.5900
        Fuego Ironworks:     0.5714
        Iron Island:         0.5554
        Route 207:           0.5161
        Route 213:           0.5045
        Route 210:           0.4876
        Oreburgh Mine:       0.4854
        Bogsunk Cavern:      0.4840
        Swampy Cave:         0.4840
        Valley Windworks:    0.4825
        Route 206:           0.4764
        Route 228:           0.4683
        Typhlo Cavern:       0.4206
        Route 214:           0.4059
        Oreburgh Gate:       0.4051
        Route 218:           0.3916
        Stark Mountain:      0.3853
        Route 221:           0.3847
        Route 211:           0.3801
        Route 202:           0.3798
        Route 203:           0.3594
        Route 215:           0.3569
        Lake Verity:         0.3566
        Volcanic Cave:       0.3375
        Route 209:           0.3314
        Eterna Forest:       0.3308
        Sandsear Cave:       0.3185
        Route 222:           0.3073
        Route 224:           0.2977
        Route 227:           0.2977
        Route 208:           0.2797
        Route 201:           0.2705
        Route 226:           0.2635
        Victory Road:        0.2334
        Lake Acuity:         0.2269
        Turnback Cave:       0.2168
        Route 225:           0.2049
        Lake Valor:          0.1982
        Route 219:           0.1876
        Route 220:           0.1824
        Trophy Garden:       0.1772
        Canalave City:       0.1678
        Route 229:           0.1623
        Ravaged Path:        0.1596
        Route 230:           0.1596
        Sendoff Spring:      0.1556
        Pastoria City:       0.1503
        Valor Lakefront:     0.1346
        Route 217:           0.1233
        Floaroma Meadow:     0.1209
        Snowpoint Temple:    0.1076
        Celestic Town:       0.1063
        Twinleaf Town:       0.1047
        Sunyshore City:      0.1043
        Route 216:           0.0957
        Pokémon League:      0.0940
        Eterna City:         0.0922
        Route 223:           0.0881
        Acuity Lakefront:    0.0782
        Resort Area:         0.0780
        Lost Tower:          0.0772
        Solaceon Ruins:      0.0397
        Old Chateau:         0.0002
        Roaming Sinnoh:      0.0000

The following locations in the 'Sinnoh' region have no wild Pokemon encounters:

        Amity Square
        Battle Frontier
        Battle Park
        Distortion World
        Eterna Galactic Building
        Fight Area
        Floaroma Town
        Flower Paradise
        Fullmoon Island
        Galactic Warehouse
        Grand Lake Hotel
        Grand Underground
        Hall of Origin
        Hearthome City
        Jubilife City
        Newmoon Island
        Oreburgh City
        Pal Park
        Pokémon Mansion
        Ramanas Park
        Sandgem Town
        Seabreak Path
        Snowpoint City
        Solaceon Town
        Spear Pillar
        Survival Area
        Veilstone City
        Veilstone Galactic Building
        Verity Lakefront

following are a selection of error conditions and their corresponding error messages that your script be able to handle:

./pokemon_density Aurorania

'Aurorania' isn't a region in the Pokemon series.

Encounter Summary Example

following are a selection of example outputs from the encounter_summary script.

./encounter_summary "Route 201" "Diamond"

In 'Pokemon Diamond' at 'Route 201' the following Pokemon can be Encountered:

        Bidoof:
                Type: Normal
                Rarity: 20%
                Levels: min 2, max 3
                Egg Groups: Field, Water 1
                Abilities: Simple, Unaware
                Encounter Requirements:
                        Walking

        Doduo:
                Type: Normal/Flying
                Rarity: 20%
                Levels: min 2, max 2
                Egg Groups: Flying
                Abilities: Early Bird, Run Away
                Encounter Requirements:
                        Walking

        Starly:
                Type: Normal/Flying
                Rarity: 20%
                Levels: min 2, max 3
                Egg Groups: Flying
                Abilities: Keen Eye
                Encounter Requirements:
                        Walking

        Nidoran♀:
                Type: Poison
                Rarity: 5%
                Levels: min 3, max 3
                Egg Groups: Field, Monster
                Abilities: Poison Point, Rivalry
                Encounter Requirements:
                        PokeRadar

        Growlithe:
                Type: Fire
                Rarity: 1%
                Levels: min 2, max 2
                Egg Groups: Field
                Abilities: Flash Fire, Intimidate
                Encounter Requirements:
                        Walking

        Nidoran♂:
                Type: Poison
                Rarity: 1%
                Levels: min 2, max 2
                Egg Groups: Field, Monster
                Abilities: Poison Point, Rivalry
                Encounter Requirements:
                        PokeRadar

$ ./encounter_summary "Route 1" "Red"

In 'Pokemon Red' at 'Route 1' the following Pokemon can be Encountered:

        Pidgey:
                Type: Normal/Flying
                Rarity: 20%
                Levels: min 2, max 5
                Egg Groups: Flying
                Abilities: Keen Eye, Tangled Feet
                Encounter Requirements:
                        Walking

        Rattata:
                Type: Normal
                Rarity: 20%
                Levels: min 2, max 4
                Egg Groups: Field
                Abilities: Guts, Run Away
                Encounter Requirements:
                        Walking

$ ./encounter_summary "Route 22" "Fire Red"

In 'Pokemon Fire Red' at 'Route 22' the following Pokemon can be Encountered:

        Magikarp:
                Type: Water
                Rarity: 20%
                Levels: min 5, max 5
                Egg Groups: Dragon, Water 2
                Abilities: Swift Swim
                Encounter Requirements:
                        Fishing: Old Rod

        Mankey:
                Type: Fighting
                Rarity: 20%
                Levels: min 2, max 5
                Egg Groups: Field
                Abilities: Anger Point, Vital Spirit
                Encounter Requirements:
                        Walking

        Poliwag:
                Type: Water
                Rarity: 20%
                Levels: min 5, max 15
                Egg Groups: Water 1
                Abilities: Damp, Water Absorb
                Encounter Requirements:
                        Fishing: Good Rod

        Poliwag:
                Type: Water
                Rarity: 20%
                Levels: min 15, max 25
                Egg Groups: Water 1
                Abilities: Damp, Water Absorb
                Encounter Requirements:
                        Fishing: Super Rod

        Poliwhirl:
                Type: Water
                Rarity: 20%
                Levels: min 20, max 30
                Egg Groups: Water 1
                Abilities: Damp, Water Absorb
                Encounter Requirements:
                        Fishing: Super Rod

        Psyduck:
                Type: Water
                Rarity: 20%
                Levels: min 20, max 40
                Egg Groups: Field, Water 1
                Abilities: Cloud Nine, Damp
                Encounter Requirements:
                        Surfing

        Rattata:
                Type: Normal
                Rarity: 20%
                Levels: min 2, max 5
                Egg Groups: Field
                Abilities: Guts, Run Away
                Encounter Requirements:
                        Walking

        Goldeen:
                Type: Water
                Rarity: 5%
                Levels: min 5, max 15
                Egg Groups: Water 2
                Abilities: Swift Swim, Water Veil
                Encounter Requirements:
                        Fishing: Good Rod

        Gyarados:
                Type: Water/Flying
                Rarity: 5%
                Levels: min 15, max 25
                Egg Groups: Dragon, Water 2
                Abilities: Intimidate
                Encounter Requirements:
                        Fishing: Super Rod

        Magikarp:
                Type: Water
                Rarity: 5%
                Levels: min 5, max 15
                Egg Groups: Dragon, Water 2
                Abilities: Swift Swim
                Encounter Requirements:
                        Fishing: Good Rod

        Spearow:
                Type: Normal/Flying
                Rarity: 5%
                Levels: min 3, max 5
                Egg Groups: Flying
                Abilities: Keen Eye
                Encounter Requirements:
                        Walking

        Psyduck:
                Type: Water
                Rarity: 1%
                Levels: min 15, max 35
                Egg Groups: Field, Water 1
                Abilities: Cloud Nine, Damp
                Encounter Requirements:
                        Fishing: Super Rod

$ ./encounter_summary "Slateport City" "Omega Ruby"

In 'Pokemon Omega Ruby' at 'Slateport City' the following Pokemon can be Encountered:

        Wailmer:
                Type: Water
                Rarity: 100%
                Levels: min 30, max 40
                Egg Groups: Field, Water 2
                Abilities: Oblivious, Water Veil
                Encounter Requirements:
                        Fishing: Super Rod

        Magikarp:
                Type: Water
                Rarity: 65%
                Levels: min 10, max 15
                Egg Groups: Dragon, Water 2
                Abilities: Swift Swim
                Encounter Requirements:
                        Fishing: Old Rod

        Tentacool:
                Type: Water/Poison
                Rarity: 65%
                Levels: min 20, max 25
                Egg Groups: Water 3
                Abilities: Clear Body, Liquid Ooze
                Encounter Requirements:
                        Surfing

        Magikarp:
                Type: Water
                Rarity: 60%
                Levels: min 25, max 25
                Egg Groups: Dragon, Water 2
                Abilities: Swift Swim
                Encounter Requirements:
                        Fishing: Good Rod

        Tentacool:
                Type: Water/Poison
                Rarity: 35%
                Levels: min 5, max 5
                Egg Groups: Water 3
                Abilities: Clear Body, Liquid Ooze
                Encounter Requirements:
                        Fishing: Old Rod

        Tentacool:
                Type: Water/Poison
                Rarity: 35%
                Levels: min 25, max 25
                Egg Groups: Water 3
                Abilities: Clear Body, Liquid Ooze
                Encounter Requirements:
                        Fishing: Good Rod

        Wingull:
                Type: Water/Flying
                Rarity: 30%
                Levels: min 20, max 20
                Egg Groups: Flying, Water 1
                Abilities: Hydration, Keen Eye
                Encounter Requirements:
                        Surfing

        Pelipper:
                Type: Water/Flying
                Rarity: 5%
                Levels: min 25, max 30
                Egg Groups: Flying, Water 1
                Abilities: Drizzle, Keen Eye
                Encounter Requirements:
                        Surfing

        Wailmer:
                Type: Water
                Rarity: 5%
                Levels: min 25, max 25
                Egg Groups: Field, Water 2
                Abilities: Oblivious, Water Veil
                Encounter Requirements:
                        Fishing: Good Rod

$ ./encounter_summary "Tunnel to the Top" "The Crown Tundra"

In 'Pokemon The Crown Tundra' at 'Tunnel To The Top' the following Pokemon can be Encountered:

        Zubat:
                Type: Poison/Flying
                Rarity: 40%
                Levels: min 60, max 65
                Egg Groups: Flying
                Abilities: Inner Focus
                Encounter Requirements:
                        Walking

        Zubat:
                Type: Poison/Flying
                Rarity: 40%
                Levels: min 60, max 65
                Egg Groups: Flying
                Abilities: Inner Focus
                Encounter Requirements:
                        Walking

        Carbink:
                Type: Rock/Fairy
                Rarity: 24%
                Levels: min 60, max 65
                Egg Groups: Fairy, Mineral
                Abilities: Clear Body
                Encounter Requirements:
                        Walking

        Carbink:
                Type: Rock/Fairy
                Rarity: 24%
                Levels: min 60, max 65
                Egg Groups: Fairy, Mineral
                Abilities: Clear Body
                Encounter Requirements:
                        Walking

        Snorunt:
                Type: Ice
                Rarity: 20%
                Levels: min 60, max 65
                Egg Groups: Fairy, Mineral
                Abilities: Ice Body, Inner Focus
                Encounter Requirements:
                        Walking

        Snorunt:
                Type: Ice
                Rarity: 20%
                Levels: min 60, max 65
                Egg Groups: Fairy, Mineral
                Abilities: Ice Body, Inner Focus
                Encounter Requirements:
                        Walking

        Bagon:
                Type: Dragon
                Rarity: 10%
                Levels: min 60, max 65
                Egg Groups: Dragon
                Abilities: Rock Head
                Encounter Requirements:
                        Walking

        Gible:
                Type: Dragon/Ground
                Rarity: 10%
                Levels: min 60, max 65
                Egg Groups: Dragon, Monster
                Abilities: Sand Veil
                Encounter Requirements:
                        Walking

        Clefairy:
                Type: Fairy
                Rarity: 5%
                Levels: min 60, max 65
                Egg Groups: Fairy
                Abilities: Cute Charm, Magic Guard
                Encounter Requirements:
                        Walking

        Clefairy:
                Type: Fairy
                Rarity: 5%
                Levels: min 60, max 65
                Egg Groups: Fairy
                Abilities: Cute Charm, Magic Guard
                Encounter Requirements:
                        Walking

        Audino:
                Type: Normal
                Rarity: 1%
                Levels: min 60, max 65
                Egg Groups: Fairy
                Abilities: Healer, Regenerator
                Encounter Requirements:
                        Walking
        Audino:
                Type: Normal
                Rarity: 1%
                Levels: min 60, max 65
                Egg Groups: Fairy
                Abilities: Healer, Regenerator
                Encounter Requirements:
                        Walking

$ ./encounter_summary "Kala'e Bay" "Ultra Sun"

In 'Pokemon Ultra Sun' at 'Kala'E Bay' the following Pokemon can be Encountered:

        Tentacool:
                Type: Water/Poison
                Rarity: 40%
                Levels: min 15, max 18
                Egg Groups: Water 3
                Abilities: Clear Body, Liquid Ooze
                Encounter Requirements:
                        Surfing

        Wingull:
                Type: Water/Flying
                Rarity: 40%
                Levels: min 15, max 18
                Egg Groups: Flying, Water 1
                Abilities: Hydration, Keen Eye
                Encounter Requirements:
                        Walking

        Magikarp:
                Type: Water
                Rarity: 35%
                Levels: min 10, max 17
                Egg Groups: Dragon, Water 2
                Abilities: Swift Swim
                Encounter Requirements:
                        Fishing: Super Rod

        Shellder:
                Type: Water
                Rarity: 35%
                Levels: min 10, max 22
                Egg Groups: Water 3
                Abilities: Shell Armor, Skill Link
                Encounter Requirements:
                        Fishing: Super Rod

        Wishiwashi - Solo Form:
                Type: Water
                Rarity: 35%
                Levels: min 10, max 17
                Egg Groups: Water 2
                Abilities: Schooling
                Encounter Requirements:
                        Fishing: Super Rod

        Alolan Rattata:
                Type: Dark
                Rarity: 30%
                Levels: min 15, max 18
                Egg Groups: Field
                Abilities: Gluttony, Hustle
                Encounter Requirements:
                        Time of Day: Night
                        Walking

        Yungoos:
                Type: Normal
                Rarity: 30%
                Levels: min 15, max 18
                Egg Groups: Field
                Abilities: Stakeout, Strong Jaw
                Encounter Requirements:
                        Time of Day: Day
                        Walking

        Magikarp:
                Type: Water
                Rarity: 25%
                Levels: min 10, max 22
                Egg Groups: Dragon, Water 2
                Abilities: Swift Swim
                Encounter Requirements:
                        Fishing: Super Rod

        Remoraid:
                Type: Water
                Rarity: 25%
                Levels: min 10, max 17
                Egg Groups: Water 1, Water 2
                Abilities: Hustle, Sniper
                Encounter Requirements:
                        Fishing: Super Rod

        Wishiwashi - Solo Form:
                Type: Water
                Rarity: 25%
                Levels: min 10, max 22
                Egg Groups: Water 2
                Abilities: Schooling
                Encounter Requirements:
                        Fishing: Super Rod

        Finneon:
                Type: Water
                Rarity: 20%
                Levels: min 15, max 18
                Egg Groups: Water 2
                Abilities: Storm Drain, Swift Swim
                Encounter Requirements:
                        Surfing

        Mantyke:
                Type: Water/Flying
                Rarity: 20%
                Levels: min 15, max 18
                Egg Groups: Undiscovered
                Abilities: Swift Swim, Water Absorb
                Encounter Requirements:
                        Surfing

        Slowpoke:
                Type: Water/Psychic
                Rarity: 20%
                Levels: min 15, max 18
                Egg Groups: Monster, Water 1
                Abilities: Oblivious, Own Tempo
                Encounter Requirements:
                        Walking

        Wingull:
                Type: Water/Flying
                Rarity: 20%
                Levels: min 15, max 18
                Egg Groups: Flying, Water 1
                Abilities: Hydration, Keen Eye
                Encounter Requirements:
                        Surfing

        Remoraid:
                Type: Water
                Rarity: 15%
                Levels: min 10, max 22
                Egg Groups: Water 1, Water 2
                Abilities: Hustle, Sniper
                Encounter Requirements:
                        Fishing: Super Rod

        Bagon:
                Type: Dragon
                Rarity: 10%
                Levels: min 15, max 18
                Egg Groups: Dragon
                Abilities: Rock Head
                Encounter Requirements:
                        Walking

        Gyarados:
                Type: Water/Flying
                Rarity: 5%
                Levels: min 10, max 17
                Egg Groups: Dragon, Water 2
                Abilities: Intimidate
                Encounter Requirements:
                        Fishing: Super Rod

        Gyarados:
                Type: Water/Flying
                Rarity: 5%
                Levels: min 10, max 22
                Egg Groups: Dragon, Water 2
                Abilities: Intimidate
                Encounter Requirements:
                        Fishing: Super Rod

        Octillery:
                Type: Water
                Rarity: 5%
                Levels: min 10, max 17
                Egg Groups: Water 1, Water 2
                Abilities: Sniper, Suction Cups
                Encounter Requirements:
                        Fishing: Super Rod

        Octillery:
                Type: Water
                Rarity: 5%
                Levels: min 10, max 22
                Egg Groups: Water 1, Water 2
                Abilities: Sniper, Suction Cups
                Encounter Requirements:
                        Fishing: Super Rod

        Remoraid:
                Type: Water
                Rarity: 5%
                Levels: min 15, max 18
                Egg Groups: Water 1, Water 2
                Abilities: Hustle, Sniper
                Encounter Requirements:
                        Surfing

        Shelgon:
                Type: Dragon
                Rarity: 5%
                Levels: min 15, max 18
                Egg Groups: Dragon
                Abilities: Rock Head
                Encounter Requirements:
                        Walking

        Shellder:
                Type: Water
                Rarity: 5%
                Levels: min 10, max 17
                Egg Groups: Water 3
                Abilities: Shell Armor, Skill Link
                Encounter Requirements:
                        Fishing: Super Rod

        Slowbro:
                Type: Water/Psychic
                Rarity: 5%
                Levels: min 15, max 18
                Egg Groups: Monster, Water 1
                Abilities: Oblivious, Own Tempo
                Encounter Requirements:
                        Walking

        Slowking:
                Type: Water/Psychic
                Rarity: 5%
                Levels: min 15, max 18
                Egg Groups: Monster, Water 1
                Abilities: Oblivious, Own Tempo
                Encounter Requirements:
                        Walking

        Horsea:
                Type: Water
                Rarity: 0%
                Levels: min 18, max 18
                Egg Groups: Dragon, Water 1
                Abilities: Sniper, Swift Swim
                Encounter Requirements:
                        Day of the Week: Wednesday
                        Walking

following are a selection of error conditions and their corresponding error messages that your script be able to handle:

./encounter_summary 'Tunnel to the Bottom' 'The Crown Tundra'
'Tunnel To The Bottom' isn't a location in the Pokemon series.

$ ./encounter_summary 'Tunnel To The Top' Glass
'Pokemon Glass' isn't a game in the Pokemon series.

$ ./encounter_summary 'Route 101' Red
'Route 101' isn't in 'Pokemon Red'.

Arguments should be checked in the order shown above.
ie. First check that the location exsits, then check that the game exists, then check that the location appears in the game.

Attack Damage Example

following are a selection of example outputs from the attack_damage script.

Note that each row of output (except the first (and blank lines)) is indented with a single tab character.
The move names are left-aligned, and the damage values are right-aligned.

./attack_damage Bulbasaur Squirtle 'Fire Red'

In 'Pokemon Fire Red', When 'Bulbasaur' attacks 'Squirtle', 'Bulbasaur' can use the following moves:

        'Rock Smash'   for a minimum of  2 damage and a maximum of  27 damage to 'Squirtle'.
        'Tackle'       for a minimum of  2 damage and a maximum of  27 damage to 'Squirtle'.
        'Cut'          for a minimum of  3 damage and a maximum of  33 damage to 'Squirtle'.
        'Facade'       for a minimum of  3 damage and a maximum of  46 damage to 'Squirtle'.
        'Secret Power' for a minimum of  3 damage and a maximum of  46 damage to 'Squirtle'.
        'Strength'     for a minimum of  4 damage and a maximum of  52 damage to 'Squirtle'.
        'Hidden Power' for a minimum of  4 damage and a maximum of  53 damage to 'Squirtle'.
        'Bullet Seed'  for a minimum of  7 damage and a maximum of  53 damage to 'Squirtle'.
        'Body Slam'    for a minimum of  4 damage and a maximum of  55 damage to 'Squirtle'.
        'Double-Edge'  for a minimum of  5 damage and a maximum of  78 damage to 'Squirtle'.
        'Skull Bash'   for a minimum of  5 damage and a maximum of  84 damage to 'Squirtle'.
        'Vine Whip'    for a minimum of  9 damage and a maximum of  91 damage to 'Squirtle'.
        'Razor Leaf'   for a minimum of 10 damage and a maximum of 110 damage to 'Squirtle'.
        'Sludge Bomb'  for a minimum of  8 damage and a maximum of 118 damage to 'Squirtle'.
        'Magical Leaf' for a minimum of 12 damage and a maximum of 159 damage to 'Squirtle'.
        'Giga Drain'   for a minimum of 14 damage and a maximum of 198 damage to 'Squirtle'.
        'Petal Dance'  for a minimum of 20 damage and a maximum of 313 damage to 'Squirtle'.
        'Solar Beam'   for a minimum of 20 damage and a maximum of 313 damage to 'Squirtle'.

$ ./attack_damage Pikachu Tentacruel 'Yellow'

In 'Pokemon Yellow', When 'Pikachu' attacks 'Tentacruel', 'Pikachu' can use the following moves:

        'Rage'          for a minimum of  2 damage and a maximum of  16 damage to 'Tentacruel'.
        'Swift'         for a minimum of  2 damage and a maximum of  23 damage to 'Tentacruel'.
        'Submission'    for a minimum of  2 damage and a maximum of  29 damage to 'Tentacruel'.
        'Pay Day'       for a minimum of  3 damage and a maximum of  30 damage to 'Tentacruel'.
        'Quick Attack'  for a minimum of  3 damage and a maximum of  30 damage to 'Tentacruel'.
        'Thunder Shock' for a minimum of  7 damage and a maximum of  48 damage to 'Tentacruel'.
        'Mega Punch'    for a minimum of  4 damage and a maximum of  58 damage to 'Tentacruel'.
        'Slam'          for a minimum of  4 damage and a maximum of  58 damage to 'Tentacruel'.
        'Body Slam'     for a minimum of  4 damage and a maximum of  62 damage to 'Tentacruel'.
        'Take Down'     for a minimum of  4 damage and a maximum of  66 damage to 'Tentacruel'.
        'Double-Edge'   for a minimum of  5 damage and a maximum of  87 damage to 'Tentacruel'.
        'Mega Kick'     for a minimum of  5 damage and a maximum of  87 damage to 'Tentacruel'.
        'Skull Bash'    for a minimum of  6 damage and a maximum of  94 damage to 'Tentacruel'.
        'Thunderbolt'   for a minimum of  9 damage and a maximum of 100 damage to 'Tentacruel'.
        'Thunder'       for a minimum of 10 damage and a maximum of 121 damage to 'Tentacruel'.

$ ./attack_damage Pikachu Klinklang 'Shield'

In 'Pokemon Shield', When 'Pikachu' attacks 'Klinklang', 'Pikachu' can use the following moves:

        'Feint'           for a minimum of 1 damage and a maximum of  7 damage to 'Klinklang'.
        'Fake Out'        for a minimum of 1 damage and a maximum of  9 damage to 'Klinklang'.
        'Pay Day'         for a minimum of 1 damage and a maximum of  9 damage to 'Klinklang'.
        'Quick Attack'    for a minimum of 1 damage and a maximum of  9 damage to 'Klinklang'.
        'Disarming Voice' for a minimum of 1 damage and a maximum of 10 damage to 'Klinklang'.
        'Draining Kiss'   for a minimum of 1 damage and a maximum of 13 damage to 'Klinklang'.
        'Snore'           for a minimum of 1 damage and a maximum of 13 damage to 'Klinklang'.
        'Facade'          for a minimum of 1 damage and a maximum of 15 damage to 'Klinklang'.
        'Round'           for a minimum of 1 damage and a maximum of 15 damage to 'Klinklang'.
        'Swift'           for a minimum of 1 damage and a maximum of 15 damage to 'Klinklang'.
        'Nuzzle'          for a minimum of 3 damage and a maximum of 15 damage to 'Klinklang'.
        'Mega Punch'      for a minimum of 1 damage and a maximum of 17 damage to 'Klinklang'.
        'Slam'            for a minimum of 1 damage and a maximum of 17 damage to 'Klinklang'.
        'Body Slam'       for a minimum of 1 damage and a maximum of 18 damage to 'Klinklang'.
        'Play Rough'      for a minimum of 1 damage and a maximum of 19 damage to 'Klinklang'.
        'Iron Tail'       for a minimum of 1 damage and a maximum of 21 damage to 'Klinklang'.
        'Uproar'          for a minimum of 1 damage and a maximum of 23 damage to 'Klinklang'.
        'Mega Kick'       for a minimum of 2 damage and a maximum of 25 damage to 'Klinklang'.
        'Thief'           for a minimum of 2 damage and a maximum of 26 damage to 'Klinklang'.
        'Thunder Shock'   for a minimum of 4 damage and a maximum of 32 damage to 'Klinklang'.
        'Spark'           for a minimum of 4 damage and a maximum of 42 damage to 'Klinklang'.
        'Electroweb'      for a minimum of 4 damage and a maximum of 43 damage to 'Klinklang'.
        'Surf'            for a minimum of 3 damage and a maximum of 46 damage to 'Klinklang'.
        'Thunder Punch'   for a minimum of 4 damage and a maximum of 48 damage to 'Klinklang'.
        'Rising Voltage'  for a minimum of 5 damage and a maximum of 54 damage to 'Klinklang'.
        'Volt Switch'     for a minimum of 5 damage and a maximum of 54 damage to 'Klinklang'.
        'Wild Charge'     for a minimum of 5 damage and a maximum of 57 damage to 'Klinklang'.
        'Discharge'       for a minimum of 5 damage and a maximum of 62 damage to 'Klinklang'.
        'Brick Break'     for a minimum of 6 damage and a maximum of 64 damage to 'Klinklang'.
        'Dig'             for a minimum of 6 damage and a maximum of 68 damage to 'Klinklang'.
        'Thunderbolt'     for a minimum of 5 damage and a maximum of 69 damage to 'Klinklang'.
        'Thunder'         for a minimum of 6 damage and a maximum of 84 damage to 'Klinklang'.

$ ./attack_damage Palkia Overqwil 'Legends: Arceus'

In 'Pokemon Legends: Arceus', When 'Palkia' attacks 'Overqwil', 'Palkia' can use the following moves:

        'Shadow Claw'   for a minimum of  2 damage and a maximum of  38 damage to 'Overqwil'.
        'Rock Smash'    for a minimum of  3 damage and a maximum of  44 damage to 'Overqwil'.
        'Aerial Ace'    for a minimum of  4 damage and a maximum of  65 damage to 'Overqwil'.
        'Slash'         for a minimum of  5 damage and a maximum of  76 damage to 'Overqwil'.
        'Rock Slide'    for a minimum of  5 damage and a maximum of  81 damage to 'Overqwil'.
        'Stone Edge'    for a minimum of  6 damage and a maximum of 108 damage to 'Overqwil'.
        'Ancient Power' for a minimum of  7 damage and a maximum of 118 damage to 'Overqwil'.
        'Swift'         for a minimum of  7 damage and a maximum of 118 damage to 'Overqwil'.
        'Twister'       for a minimum of  8 damage and a maximum of 119 damage to 'Overqwil'.
        'Dragon Claw'   for a minimum of  8 damage and a maximum of 130 damage to 'Overqwil'.
        'Bulldoze'      for a minimum of  9 damage and a maximum of 131 damage to 'Overqwil'.
        'Aqua Tail'     for a minimum of  9 damage and a maximum of 146 damage to 'Overqwil'.
        'Power Gem'     for a minimum of  9 damage and a maximum of 157 damage to 'Overqwil'.
        'Giga Impact'   for a minimum of  9 damage and a maximum of 161 damage to 'Overqwil'.
        'Flamethrower'  for a minimum of 10 damage and a maximum of 176 damage to 'Overqwil'.
        'Ice Beam'      for a minimum of 10 damage and a maximum of 176 damage to 'Overqwil'.
        'Thunderbolt'   for a minimum of 10 damage and a maximum of 176 damage to 'Overqwil'.
        'Water Pulse'   for a minimum of 11 damage and a maximum of 177 damage to 'Overqwil'.
        'Outrage'       for a minimum of 11 damage and a maximum of 194 damage to 'Overqwil'.
        'Dragon Pulse'  for a minimum of 14 damage and a maximum of 250 damage to 'Overqwil'.
        'Hyper Beam'    for a minimum of 15 damage and a maximum of 292 damage to 'Overqwil'.
        'Spacial Rend'  for a minimum of 16 damage and a maximum of 293 damage to 'Overqwil'.
        'Hydro Pump'    for a minimum of 18 damage and a maximum of 322 damage to 'Overqwil'.
        'Earth Power'   for a minimum of 20 damage and a maximum of 352 damage to 'Overqwil'.
        'Draco Meteor'  for a minimum of 20 damage and a maximum of 381 damage to 'Overqwil'.

$ ./attack_damage Dragapult Riolu 'Violet'

In 'Pokemon Violet', When 'Dragapult' attacks 'Riolu', 'Dragapult' can use the following moves:

        'Infestation'   for a minimum of  1 damage and a maximum of  22 damage to 'Riolu'.
        'Pounce'        for a minimum of  3 damage and a maximum of  64 damage to 'Riolu'.
        'Assurance'     for a minimum of  4 damage and a maximum of  76 damage to 'Riolu'.
        'Bite'          for a minimum of  4 damage and a maximum of  76 damage to 'Riolu'.
        'Thief'         for a minimum of  4 damage and a maximum of  76 damage to 'Riolu'.
        'Sucker Punch'  for a minimum of  5 damage and a maximum of  89 damage to 'Riolu'.
        'U-turn'        for a minimum of  5 damage and a maximum of  89 damage to 'Riolu'.
        'Double Hit'    for a minimum of  6 damage and a maximum of  90 damage to 'Riolu'.
        'Quick Attack'  for a minimum of  6 damage and a maximum of 102 damage to 'Riolu'.
        'Astonish'      for a minimum of  8 damage and a maximum of 116 damage to 'Riolu'.
        'Swift'         for a minimum of  7 damage and a maximum of 128 damage to 'Riolu'.
        'Tera Blast'    for a minimum of  9 damage and a maximum of 170 damage to 'Riolu'.
        'Facade'        for a minimum of 10 damage and a maximum of 178 damage to 'Riolu'.
        'Flamethrower'  for a minimum of 10 damage and a maximum of 191 damage to 'Riolu'.
        'Surf'          for a minimum of 10 damage and a maximum of 191 damage to 'Riolu'.
        'Thunderbolt'   for a minimum of 10 damage and a maximum of 191 damage to 'Riolu'.
        'Dragon Breath' for a minimum of 11 damage and a maximum of 192 damage to 'Riolu'.
        'Dragon Darts'  for a minimum of 11 damage and a maximum of 192 damage to 'Riolu'.
        'Hex'           for a minimum of 12 damage and a maximum of 207 damage to 'Riolu'.
        'Body Slam'     for a minimum of 12 damage and a maximum of 216 damage to 'Riolu'.
        'Take Down'     for a minimum of 12 damage and a maximum of 228 damage to 'Riolu'.
        'Dragon Tail'   for a minimum of 13 damage and a maximum of 229 damage to 'Riolu'.
        'Fire Blast'    for a minimum of 12 damage and a maximum of 233 damage to 'Riolu'.
        'Hydro Pump'    for a minimum of 12 damage and a maximum of 233 damage to 'Riolu'.
        'Thunder'       for a minimum of 12 damage and a maximum of 233 damage to 'Riolu'.
        'Solar Beam'    for a minimum of 13 damage and a maximum of 254 damage to 'Riolu'.
        'Shadow Ball'   for a minimum of 14 damage and a maximum of 255 damage to 'Riolu'.
        'Dragon Pulse'  for a minimum of 15 damage and a maximum of 270 damage to 'Riolu'.
        'Acrobatics'    for a minimum of 16 damage and a maximum of 281 damage to 'Riolu'.
        'Double-Edge'   for a minimum of 16 damage and a maximum of 304 damage to 'Riolu'.
        'Dragon Claw'   for a minimum of 17 damage and a maximum of 305 damage to 'Riolu'.
        'Hyper Beam'    for a minimum of 17 damage and a maximum of 317 damage to 'Riolu'.
        'Phantom Force' for a minimum of 19 damage and a maximum of 343 damage to 'Riolu'.
        'Last Resort'   for a minimum of 18 damage and a maximum of 354 damage to 'Riolu'.
        'Giga Impact'   for a minimum of 20 damage and a maximum of 380 damage to 'Riolu'.
        'Dragon Rush'   for a minimum of 20 damage and a maximum of 381 damage to 'Riolu'.
        'Draco Meteor'  for a minimum of 22 damage and a maximum of 412 damage to 'Riolu'.
        'Psychic Fangs' for a minimum of 24 damage and a maximum of 432 damage to 'Riolu'.
        'Outrage'       for a minimum of 24 damage and a maximum of 456 damage to 'Riolu'.
        'Fly'           for a minimum of 25 damage and a maximum of 457 damage to 'Riolu'.

$ ./attack_damage Goodra Comfey 'Sun'

In 'Pokemon Sun', When 'Goodra' attacks 'Comfey', 'Goodra' can use the following moves:

        'Infestation'  for a minimum of  1 damage and a maximum of   9 damage to 'Comfey'.
        'Absorb'       for a minimum of  2 damage and a maximum of  18 damage to 'Comfey'.
        'Brutal Swing' for a minimum of  2 damage and a maximum of  29 damage to 'Comfey'.
        'Feint'        for a minimum of  3 damage and a maximum of  30 damage to 'Comfey'.
        'Bubble'       for a minimum of  3 damage and a maximum of  35 damage to 'Comfey'.
        'Tackle'       for a minimum of  3 damage and a maximum of  39 damage to 'Comfey'.
        'Focus Blast'  for a minimum of  3 damage and a maximum of  51 damage to 'Comfey'.
        'Hidden Power' for a minimum of  4 damage and a maximum of  52 damage to 'Comfey'.
        'Round'        for a minimum of  4 damage and a maximum of  52 damage to 'Comfey'.
        'Bulldoze'     for a minimum of  4 damage and a maximum of  58 damage to 'Comfey'.
        'Facade'       for a minimum of  4 damage and a maximum of  67 damage to 'Comfey'.
        'Rock Slide'   for a minimum of  5 damage and a maximum of  72 damage to 'Comfey'.
        'Flamethrower' for a minimum of  5 damage and a maximum of  77 damage to 'Comfey'.
        'Ice Beam'     for a minimum of  5 damage and a maximum of  77 damage to 'Comfey'.
        'Muddy Water'  for a minimum of  5 damage and a maximum of  77 damage to 'Comfey'.
        'Thunderbolt'  for a minimum of  5 damage and a maximum of  77 damage to 'Comfey'.
        'Body Slam'    for a minimum of  5 damage and a maximum of  81 damage to 'Comfey'.
        'Aqua Tail'    for a minimum of  5 damage and a maximum of  86 damage to 'Comfey'.
        'Blizzard'     for a minimum of  6 damage and a maximum of  94 damage to 'Comfey'.
        'Fire Blast'   for a minimum of  6 damage and a maximum of  94 damage to 'Comfey'.
        'Thunder'      for a minimum of  6 damage and a maximum of  94 damage to 'Comfey'.
        'Earthquake'   for a minimum of  6 damage and a maximum of  95 damage to 'Comfey'.
        'Poison Tail'  for a minimum of  7 damage and a maximum of  97 damage to 'Comfey'.
        'Power Whip'   for a minimum of  7 damage and a maximum of 114 damage to 'Comfey'.
        'Hyper Beam'   for a minimum of  7 damage and a maximum of 128 damage to 'Comfey'.
        'Giga Impact'  for a minimum of  8 damage and a maximum of 142 damage to 'Comfey'.
        'Sludge Bomb'  for a minimum of 10 damage and a maximum of 155 damage to 'Comfey'.
        'Sludge Wave'  for a minimum of 11 damage and a maximum of 163 damage to 'Comfey'.
        'Iron Tail'    for a minimum of 12 damage and a maximum of 190 damage to 'Comfey'.

$ ./attack_damage 'Hisuian Avalugg' Gliscor 'Legends: Arceus'

In 'Pokemon Legends: Arceus', When 'Hisuian Avalugg' attacks 'Gliscor', 'Hisuian Avalugg' can use the following moves:

        'Rock Smash'    for a minimum of  1 damage and a maximum of  18 damage to 'Gliscor'.
        'Flash Cannon'  for a minimum of  3 damage and a maximum of  32 damage to 'Gliscor'.
        'Tackle'        for a minimum of  3 damage and a maximum of  36 damage to 'Gliscor'.
        'Water Pulse'   for a minimum of  5 damage and a maximum of  49 damage to 'Gliscor'.
        'Bite'          for a minimum of  4 damage and a maximum of  53 damage to 'Gliscor'.
        'Hyper Beam'    for a minimum of  4 damage and a maximum of  59 damage to 'Gliscor'.
        'Crunch'        for a minimum of  5 damage and a maximum of  70 damage to 'Gliscor'.
        'Iron Head'     for a minimum of  5 damage and a maximum of  70 damage to 'Gliscor'.
        'Rock Slide'    for a minimum of  7 damage and a maximum of  99 damage to 'Gliscor'.
        'Powder Snow'   for a minimum of 14 damage and a maximum of 103 damage to 'Gliscor'.
        'Double-Edge'   for a minimum of  6 damage and a maximum of 104 damage to 'Gliscor'.
        'Giga Impact'   for a minimum of  7 damage and a maximum of 130 damage to 'Gliscor'.
        'Stone Edge'    for a minimum of  8 damage and a maximum of 131 damage to 'Gliscor'.
        'Icy Wind'      for a minimum of 16 damage and a maximum of 137 damage to 'Gliscor'.
        'Ice Ball'      for a minimum of 17 damage and a maximum of 165 damage to 'Gliscor'.
        'Ice Shard'     for a minimum of 20 damage and a maximum of 216 damage to 'Gliscor'.
        'Ice Beam'      for a minimum of 20 damage and a maximum of 217 damage to 'Gliscor'.
        'Blizzard'      for a minimum of 22 damage and a maximum of 263 damage to 'Gliscor'.
        'Ice Fang'      for a minimum of 26 damage and a maximum of 344 damage to 'Gliscor'.
        'Mountain Gale' for a minimum of 35 damage and a maximum of 524 damage to 'Gliscor'.

$ ./attack_damage 'Darmanitan - Galarian Zen Mode' 'Darmanitan - Galarian Standard Mode' 'Black 2'

In 'Pokemon Black 2', When 'Darmanitan - Galarian Zen Mode' attacks 'Darmanitan - Galarian Standard Mode', 'Darmanitan - Galarian Zen Mode' can use the following moves:

        'Snore'        for a minimum of  2 damage and a maximum of  24 damage to 'Darmanitan - Galarian Standard Mode'.
        'Hidden Power' for a minimum of  3 damage and a maximum of  29 damage to 'Darmanitan - Galarian Standard Mode'.
        'Round'        for a minimum of  3 damage and a maximum of  29 damage to 'Darmanitan - Galarian Standard Mode'.
        'Psychic'      for a minimum of  3 damage and a maximum of  43 damage to 'Darmanitan - Galarian Standard Mode'.
        'Uproar'       for a minimum of  3 damage and a maximum of  43 damage to 'Darmanitan - Galarian Standard Mode'.
        'Rage'         for a minimum of  4 damage and a maximum of  50 damage to 'Darmanitan - Galarian Standard Mode'.
        'Solar Beam'   for a minimum of  4 damage and a maximum of  57 damage to 'Darmanitan - Galarian Standard Mode'.
        'Hyper Beam'   for a minimum of  5 damage and a maximum of  70 damage to 'Darmanitan - Galarian Standard Mode'.
        'Incinerate'   for a minimum of  9 damage and a maximum of  88 damage to 'Darmanitan - Galarian Standard Mode'.
        'Tackle'       for a minimum of  6 damage and a maximum of  99 damage to 'Darmanitan - Galarian Standard Mode'.
        'Focus Blast'  for a minimum of  8 damage and a maximum of 114 damage to 'Darmanitan - Galarian Standard Mode'.
        'Payback'      for a minimum of  7 damage and a maximum of 124 damage to 'Darmanitan - Galarian Standard Mode'.
        'Flamethrower' for a minimum of 11 damage and a maximum of 129 damage to 'Darmanitan - Galarian Standard Mode'.
        'Heat Wave'    for a minimum of 11 damage and a maximum of 136 damage to 'Darmanitan - Galarian Standard Mode'.
        'Bulldoze'     for a minimum of  8 damage and a maximum of 148 damage to 'Darmanitan - Galarian Standard Mode'.
        'Thief'        for a minimum of  8 damage and a maximum of 148 damage to 'Darmanitan - Galarian Standard Mode'.
        'Rollout'      for a minimum of 10 damage and a maximum of 150 damage to 'Darmanitan - Galarian Standard Mode'.
        'Fire Blast'   for a minimum of 12 damage and a maximum of 157 damage to 'Darmanitan - Galarian Standard Mode'.
        'Facade'       for a minimum of 10 damage and a maximum of 173 damage to 'Darmanitan - Galarian Standard Mode'.
        'Headbutt'     for a minimum of 10 damage and a maximum of 173 damage to 'Darmanitan - Galarian Standard Mode'.
        'U-turn'       for a minimum of 10 damage and a maximum of 173 damage to 'Darmanitan - Galarian Standard Mode'.
        'Overheat'     for a minimum of 13 damage and a maximum of 184 damage to 'Darmanitan - Galarian Standard Mode'.
        'Dig'          for a minimum of 11 damage and a maximum of 197 damage to 'Darmanitan - Galarian Standard Mode'.
        'Strength'     for a minimum of 11 damage and a maximum of 197 damage to 'Darmanitan - Galarian Standard Mode'.
        'Zen Headbutt' for a minimum of 11 damage and a maximum of 197 damage to 'Darmanitan - Galarian Standard Mode'.
        'Rock Smash'   for a minimum of 12 damage and a maximum of 199 damage to 'Darmanitan - Galarian Standard Mode'.
        'Take Down'    for a minimum of 12 damage and a maximum of 221 damage to 'Darmanitan - Galarian Standard Mode'.
        'Earthquake'   for a minimum of 13 damage and a maximum of 246 damage to 'Darmanitan - Galarian Standard Mode'.
        'Smack Down'   for a minimum of 15 damage and a maximum of 248 damage to 'Darmanitan - Galarian Standard Mode'.
        'Thrash'       for a minimum of 15 damage and a maximum of 295 damage to 'Darmanitan - Galarian Standard Mode'.
        'Rock Tomb'    for a minimum of 17 damage and a maximum of 297 damage to 'Darmanitan - Galarian Standard Mode'.
        'Giga Impact'  for a minimum of 19 damage and a maximum of 368 damage to 'Darmanitan - Galarian Standard Mode'.
        'Brick Break'  for a minimum of 21 damage and a maximum of 370 damage to 'Darmanitan - Galarian Standard Mode'.
        'Rock Slide'   for a minimum of 21 damage and a maximum of 370 damage to 'Darmanitan - Galarian Standard Mode'.
        'Flame Charge' for a minimum of 22 damage and a maximum of 372 damage to 'Darmanitan - Galarian Standard Mode'.
        'Flame Wheel'  for a minimum of 26 damage and a maximum of 445 damage to 'Darmanitan - Galarian Standard Mode'.
        'Fire Fang'    for a minimum of 28 damage and a maximum of 482 damage to 'Darmanitan - Galarian Standard Mode'.
        'Hammer Arm'   for a minimum of 27 damage and a maximum of 492 damage to 'Darmanitan - Galarian Standard Mode'.
        'Stone Edge'   for a minimum of 27 damage and a maximum of 492 damage to 'Darmanitan - Galarian Standard Mode'.
        'Fire Punch'   for a minimum of 31 damage and a maximum of 555 damage to 'Darmanitan - Galarian Standard Mode'.
        'Superpower'   for a minimum of 31 damage and a maximum of 590 damage to 'Darmanitan - Galarian Standard Mode'.
        'Focus Punch'  for a minimum of 39 damage and a maximum of 737 damage to 'Darmanitan - Galarian Standard Mode'.
        'Flare Blitz'  for a minimum of 47 damage and a maximum of 885 damage to 'Darmanitan - Galarian Standard Mode'.

# Either the attacking pokemon doesn't learn any moves or all moves deal 0 damage./attack_damage Smeargle Passimian 'Ultra Moon'

In 'Pokemon Ultra Moon', 'Smeargle' can't attack 'Passimian'.

following are a selection of error conditions and their corresponding error messages that your script be able to handle:

./attack_damage Aipom Fluffluff 'Heart Gold'
'Fluffluff' isn't a Pokemon that exists.

$ ./attack_damage Grumpig Grumpig 'Glass'
'Pokemon Glass' isn't a game in the Pokemon series.

$ ./attack_damage Cacturne Grumpig 'Red'
'Cacturne' doesn't appear in 'Pokemon Red'.

Arguments should be checked in the order shown above.
ie. First check that the first pokemon exsits, then check that the second pokemon exists, then check that the game exists, then check that the first pokemon appears in the game, then check that the second pokemon appears in the game.