Example #1
0
    def test_moves(self):
        quick_settings = {"quick_moves": ["Vine Whip", "Tackle"]}
        quick_mon_filter = Filters.MonFilter('quick_move_filter',
                                             quick_settings)
        self.assertTrue(quick_mon_filter.check_event(create_event({
            'move_1': 221
        })))
        self.assertTrue(quick_mon_filter.check_event(create_event({
            'move_1': 214
        })))
        self.assertFalse(quick_mon_filter.check_event(create_event({
            'move_1': 1
        })))
        self.assertFalse(quick_mon_filter.check_event(create_event({
            'move_1': 999
        })))

        charge_settings = {"charge_moves": ["Sludge Bomb", "Seed Bomb"]}
        charge_mon_filter = Filters.MonFilter('charge_move_filter',
                                              charge_settings)
        self.assertTrue(charge_mon_filter.check_event(create_event({
            'move_2': 90
        })))
        self.assertTrue(charge_mon_filter.check_event(create_event({
            'move_2': 59
        })))
        self.assertFalse(charge_mon_filter.check_event(create_event({
            'move_2': 1
        })))
        self.assertFalse(charge_mon_filter.check_event(create_event({
            'move_2': 999
        })))
Example #2
0
    def test_distance(self):
        stop_event = Events.StopEvent(generate_stop({}))
        settings = {'min_dist': 5, 'max_dist': 2000}
        stop_filter = Filters.StopFilter('distance_filter', settings)
        for i in [5, 2000, 1000]:
            stop_event.distance = i
            self.assertTrue(stop_filter.check_event(stop_event))

        settings2 = {'min_dist': 100, 'max_dist': 5000}
        stop_filter2 = Filters.StopFilter('distance_filter_2', settings2)
        for i in [99, 5001, 9999]:
            stop_event.distance = i
            self.assertFalse(stop_filter2.check_event(stop_event))
Example #3
0
    def test_distance(self):
        mon_event = Events.MonEvent(generate_monster({}))
        settings = {'min_dist': '5', 'max_dist': '2000'}
        mon_filter = Filters.MonFilter('distance_filter', settings)
        for i in [1000, 5, 2000]:
            mon_event.distance = i
            self.assertTrue(mon_filter.check_event(mon_event))

        settings2 = {'min_dist': '5', 'max_dist': 500}
        mon_filter2 = Filters.MonFilter('distance_filter_2', settings2)
        for i in [4, 501, 9999]:
            mon_event.distance = i
            self.assertFalse(mon_filter2.check_event(mon_event))
Example #4
0
 def test_height(self):
     settings = {'min_height': 15, 'max_height': 'inf'}
     mon_filter = Filters.MonFilter('height_filter', settings)
     self.assertTrue(mon_filter.check_event(create_event({'height': 15})))
     self.assertFalse(mon_filter.check_event(create_event({'height': 14})))
     self.assertTrue(mon_filter.check_event(create_event({'height':
                                                          'inf'})))
Example #5
0
    def test_egg_distance(self):
        # Create the filters
        settings = {"max_dist": "2000", "min_dist": "400"}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.EggEvent(generate_egg({}))
        pass1.distance = 1000
        pass2 = Events.EggEvent(generate_egg({}))
        pass2.distance = 800
        pass3 = Events.EggEvent(generate_egg({}))
        pass3.distance = 600

        # Test passing events
        for e in [pass1]:
            self.assertTrue(egg_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.EggEvent(generate_egg({}))
        fail1.distance = 3000
        fail2 = Events.EggEvent(generate_egg({}))
        fail2.distance = 300
        fail3 = Events.EggEvent(generate_egg({}))
        fail3.distance = 0

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(egg_filter.check_event(e))
Example #6
0
    def test_sponsored(self):
        # Create the filters
        filter1 = Filters.RaidFilter('filter1', {"sponsored": False})
        filter2 = Filters.RaidFilter('filter2', {"sponsored": True})

        # Generate events
        not_sponsored = Events.EggEvent(generate_egg({"sponsor": 0}))
        sponsored = Events.EggEvent(generate_egg({"sponsor": 4}))

        # Test passing events
        self.assertTrue(filter1.check_event(not_sponsored))
        self.assertTrue(filter2.check_event(sponsored))

        # Test failing events
        self.assertFalse(filter2.check_event(not_sponsored))
        self.assertFalse(filter1.check_event(sponsored))
Example #7
0
 def test_custom_dts(self):
     settings = {'custom_dts': {
         'key1': 'value1',
         'I\'m a goofy': 'goober yeah!'
     }}
     mon_filter = Filters.MonFilter('custom_dts_filter', settings)
     self.assertTrue(mon_filter.check_event(create_event({})))
Example #8
0
 def test_form(self):
     # Create filter that forces settings
     settings = {"form_ids": [1, 28]}
     mon_filter = Filters.MonFilter('form_filter', settings)
     self.assertTrue(mon_filter.check_event(create_event({'form': 1})))
     self.assertTrue(mon_filter.check_event(create_event({'form': 28})))
     self.assertFalse(mon_filter.check_event(create_event({'form': 2})))
     self.assertFalse(mon_filter.check_event(create_event({'form': 999})))
Example #9
0
    def test_cp(self):
        settings = {'min_cp': 20, 'max_cp': 500}
        mon_filter = Filters.MonFilter('cp_filter', settings)
        for i in [20, 250, 500]:
            self.assertTrue(mon_filter.check_event(create_event({'cp': i})))

        for i in [19, 501, 9999]:
            self.assertFalse(mon_filter.check_event(create_event({'cp': i})))
Example #10
0
 def test_cp(self):
     settings = {'min_cp': 5000, 'max_cp': 9000}
     raid_filter = Filters.RaidFilter('cp_filter', settings)
     for i in [5000, 8000, 9000]:
         event = Events.RaidEvent(generate_raid({'cp': i}))
         self.assertTrue(raid_filter.check_event(event))
     for i in [4999, 9001, 999999]:
         event = Events.RaidEvent(generate_raid({'cp': i}))
         self.assertFalse(raid_filter.check_event(event))
Example #11
0
    def test_missing_info1(self):
        # Create the filters
        settings = {"max_dist": "inf", "is_missing_info": True}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.EggEvent(generate_egg({"dist": "Unknown"}))
        # Test passing events
        for e in [pass1]:
            self.assertTrue(egg_filter.check_event(e))
Example #12
0
 def test_missing_info(self):
     settings = {'is_missing_info': False, 'max_dist': 500}
     stop_filter = Filters.StopFilter('missing_info_filter', settings)
     stop_event = Events.StopEvent(generate_stop({}))
     self.assertFalse(stop_filter.check_event(stop_event))
     for i in [0, 500]:
         stop_event.distance = i
         self.assertTrue(stop_filter.check_event(stop_event))
     stop_event.distance = 'Unknown'
     self.assertFalse(stop_filter.check_event(stop_event))
Example #13
0
    def test_custom_dts(self):
        # Create the filters
        settings = {"custom_dts": {"key1": "pass1"}}
        raid_filter = Filters.RaidFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.RaidEvent(generate_raid({}))
        # Test passing events
        for e in [pass1]:
            self.assertTrue(raid_filter.check_event(e))
Example #14
0
    def test_weather(self):
        settings = {'weather': [1, "windy"]}
        mon_filter = Filters.MonFilter('weather_filter', settings)
        for i in [1, 5]:
            self.assertTrue(
                mon_filter.check_event(create_event({'weather': i})))

        for i in [0, 2, 8]:
            self.assertFalse(
                mon_filter.check_event(create_event({'weather': i})))
Example #15
0
    def test_missing_info2(self):
        # Create the filters
        settings = {"max_dist": "inf", "is_missing_info": False}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.EggEvent(generate_egg({}))
        pass1.distance = 1000

        # Test passing events
        for e in [pass1]:
            self.assertTrue(egg_filter.check_event(e))
Example #16
0
 def test_size(self):
     # Assumes base height/weight of Bulbasaur
     settings = {'sizes': ["tiny", "small", "large"]}
     mon_filter = Filters.MonFilter('size_filter', settings)
     self.assertTrue(mon_filter.check_event(create_event({
         'height': 0.71,
         'weight': 9
     })))
     self.assertFalse(mon_filter.check_event(create_event({
         'height': 0.71,
         'weight': 8
     })))
Example #17
0
    def test_park(self):
        # Create the filters
        settings = {"park_contains": ["pass"]}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Test events that should pass
        for n in ["pass1", "2pass", "3pass3"]:
            event = Events.EggEvent(generate_egg({"park": n}))
            self.assertTrue(egg_filter.check_event(event))

        # Test events that should fail
        for n in ["fail1", "failpas", "pasfail"]:
            event = Events.EggEvent(generate_egg({"park": n}))
            self.assertFalse(egg_filter.check_event(event))
Example #18
0
    def test_costume(self):
        # Create filter that forces settings
        settings = {"costume_ids": [1, 2]}
        mon_filter = Filters.MonFilter('costume_filter', settings)

        # Test events that should pass
        for c in [1, 2]:
            event = Events.MonEvent(generate_monster({"costume": c}))
            self.assertTrue(mon_filter.check_event(event))

        # Test events that should fail
        for c in [3, 4]:
            event = Events.MonEvent(generate_monster({"costume": c}))
            self.assertFalse(mon_filter.check_event(event))
Example #19
0
    def test_gym_name_excludes(self):
        # Create the filters
        settings = {"gym_name_excludes": ["fail"]}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Generate events that should pass
        for r in ["pass1", "2pass", "3pass3"]:
            event = Events.EggEvent(generate_egg({"name": r}))
            self.assertTrue(egg_filter.check_event(event))

        # Generate events that should fail
        for r in ["fail1", "failpass", "passfail"]:
            event = Events.EggEvent(generate_egg({"name": r}))
            self.assertFalse(egg_filter.check_event(event))
Example #20
0
 def test_missing_info(self):
     settings = {
         'is_missing_info': False,
         'min_atk': 5,
         'min_def': 5,
         'max_sta': 14
     }
     mon_filter = Filters.MonFilter('missing_info_filter', settings)
     self.assertTrue(mon_filter.check_event(create_event({
         'individual_attack': 15,
         'individual_defense': 15,
         'individual_stamina': 14,
         "cp": 280
     })))
     self.assertFalse(mon_filter.check_event(create_event({})))
Example #21
0
    def test_time_left(self):
        # Create the filters
        settings = {'min_time_left': 1000, 'max_time_left': 8000}
        egg_filter = Filters.EggFilter('time_filter', settings)

        # Test events that should pass
        for s in [2000, 4000, 6000]:
            d = (datetime.now() + timedelta(seconds=s))
            t = time.mktime(d.timetuple())
            event = Events.EggEvent(generate_egg({"start": t}))
            self.assertTrue(egg_filter.check_event(event))

        # Test events that should fail
        for s in [200, 999, 8001]:
            d = (datetime.now() + timedelta(seconds=s))
            t = time.mktime(d.timetuple())
            event = Events.EggEvent(generate_egg({"start": t}))
            self.assertFalse(egg_filter.check_event(event))
Example #22
0
    def test_iv(self):
        # Create filter that forces settings
        settings = {"min_iv": 50, "max_iv": 75}
        mon_filter = Filters.MonFilter('iv_filter', settings)

        # Generate events that pass based off forced filter
        pass1 = create_event({  # test max
            "individual_attack": 15,
            "individual_defense": 15,
            "individual_stamina": 3
        })
        pass2 = create_event({  # in between
            "individual_attack": 15,
            "individual_defense": 10,
            "individual_stamina": 2
        })
        pass3 = create_event({  # test min
            "individual_attack": 10,
            "individual_defense": 8,
            "individual_stamina": 5
        })

        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that fail based off the forced filter
        fail1 = create_event({  # test max
            "individual_attack": 12,
            "individual_defense": 11,
            "individual_stamina": 11
        })
        fail2 = create_event({  # Extreme end
            "individual_attack": 15,
            "individual_defense": 15,
            "individual_stamina": 15
        })
        fail3 = create_event({  # test min
            "individual_attack": 10,
            "individual_defense": 8,
            "individual_stamina": 4
        })

        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
Example #23
0
    def test_stamina(self):
        # Create filter that forces settings
        settings = {"min_sta": 5, "max_sta": 10}
        mon_filter = Filters.MonFilter('sta_filter', settings)

        # Generate events that pass based off forced filter
        pass1 = create_event({"individual_stamina": 5})  # test min
        pass2 = create_event({"individual_stamina": 7})  # test middle
        pass3 = create_event({"individual_stamina": 10})  # test max

        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        fail1 = create_event({"individual_stamina": 4})  # test close to min
        fail2 = create_event({"individual_stamina": 11})  # test close to max
        fail3 = create_event({"individual_stamina": 1})  # test extreme

        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
Example #24
0
    def test_current_team(self):
        # Create the filters
        settings = {"current_teams": [1, "2", "Instinct"]}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.EggEvent(generate_egg({"team": 1}))
        pass2 = Events.EggEvent(generate_egg({"team": 2}))
        pass3 = Events.EggEvent(generate_egg({"team": 3}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(egg_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.EggEvent(generate_egg({"team": 0}))

        # Test failing events
        for e in [fail1]:
            self.assertFalse(egg_filter.check_event(e))
Example #25
0
    def test_rarity_id(self):
        # Create the filters
        settings = {"rarity": ["common", "Very Rare"]}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"rarity": 0}))
        pass2 = Events.MonEvent(generate_monster({"rarity": 3}))
        # Test passing events
        for e in [pass1, pass2]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"rarity": 1}))
        fail2 = Events.MonEvent(generate_monster({"rarity": 2}))
        fail3 = Events.MonEvent(generate_monster({"rarity": 4}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
Example #26
0
    def test_egg_lvl(self):
        # Create the filters
        settings = {"min_egg_lvl": 2, "max_egg_lvl": 4}
        egg_filter = Filters.EggFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.EggEvent(generate_egg({"level": 2}))
        pass2 = Events.EggEvent(generate_egg({"level": 3}))
        pass3 = Events.EggEvent(generate_egg({"level": 4}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(egg_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.EggEvent(generate_egg({"level": 1}))
        fail2 = Events.EggEvent(generate_egg({"level": 5}))

        # Test failing events
        for e in [fail1, fail2]:
            self.assertFalse(egg_filter.check_event(e))
Example #27
0
    def test_charge_move(self):
        # Create the filters
        settings = {"charge_moves": [283, "14", "Solar Beam"]}
        raid_filter = Filters.RaidFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.RaidEvent(generate_raid({"move_2": 283}))
        pass2 = Events.RaidEvent(generate_raid({"move_2": 14}))
        pass3 = Events.RaidEvent(generate_raid({"move_2": 116}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(raid_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.RaidEvent(generate_raid({"move_2": 200}))
        fail2 = Events.RaidEvent(generate_raid({"move_2": 201}))
        fail3 = Events.RaidEvent(generate_raid({"move_2": 202}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(raid_filter.check_event(e))
Example #28
0
    def test_monster_id(self):
        # Create the filters
        settings = {"monsters": [1, "2", "Venusaur"]}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"pokemon_id": 1}))
        pass2 = Events.MonEvent(generate_monster({"pokemon_id": 2}))
        pass3 = Events.MonEvent(generate_monster({"pokemon_id": 3}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"pokemon_id": 5}))
        fail2 = Events.MonEvent(generate_monster({"pokemon_id": 102}))
        fail3 = Events.MonEvent(generate_monster({"pokemon_id": 30}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
Example #29
0
    def test_monsters_exclude(self):
        # Create the filters
        settings = {"monsters_exclude": [4, "5", "Charizard"]}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"pokemon_id": 1}))
        pass2 = Events.MonEvent(generate_monster({"pokemon_id": 2}))
        pass3 = Events.MonEvent(generate_monster({"pokemon_id": 3}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"pokemon_id": 4}))
        fail2 = Events.MonEvent(generate_monster({"pokemon_id": 5}))
        fail3 = Events.MonEvent(generate_monster({"pokemon_id": 6}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
Example #30
0
    def test_lvl(self):
        # Create the filters
        settings = {"min_lvl": 5, "max_lvl": 10}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"pokemon_level": 5}))
        pass2 = Events.MonEvent(generate_monster({"pokemon_level": 7}))
        pass3 = Events.MonEvent(generate_monster({"pokemon_level": 10}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"pokemon_id": 4}))
        fail2 = Events.MonEvent(generate_monster({"pokemon_id": 11}))
        fail3 = Events.MonEvent(generate_monster({"pokemon_id": 100}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))