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):
        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 #3
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 #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_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 #6
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 #7
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 #8
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 #9
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 #10
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 #11
0
    def test_time_left(self):
        # Create the filters
        settings = {'min_time_left': 1000, 'max_time_left': 8000}
        mon_filter = Filters.MonFilter('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.MonEvent(generate_monster({"disappear_time": t}))
            self.assertTrue(mon_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.MonEvent(generate_monster({"disappear_time": t}))
            self.assertFalse(mon_filter.check_event(event))
Example #12
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 #13
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 #14
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 #15
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))
Example #16
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 #17
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 #18
0
 def gen_filter(self, settings):
     """ Generate a generic filter with given settings. """
     return Filters.MonFilter(self._mgr, "testfilter", settings)
Example #19
0
 def test_gender(self):
     settings = {'genders': ["male", "female"]}
     mon_filter = Filters.MonFilter('gender_filter', settings)
     self.assertTrue(mon_filter.check_event(create_event({'gender': 2})))
     self.assertFalse(mon_filter.check_event(create_event({'gender': 3})))