31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
from . import ZillionTestBase
 | 
						|
 | 
						|
from worlds.zillion.options import ZillionJumpLevels, ZillionGunLevels, ZillionOptions, validate
 | 
						|
from zilliandomizer.options import VBLR_CHOICES
 | 
						|
 | 
						|
 | 
						|
class OptionsTest(ZillionTestBase):
 | 
						|
    auto_construct = False
 | 
						|
 | 
						|
    def test_validate_default(self) -> None:
 | 
						|
        self.world_setup()
 | 
						|
        options = self.multiworld.worlds[1].options
 | 
						|
        assert isinstance(options, ZillionOptions)
 | 
						|
        validate(options)
 | 
						|
 | 
						|
    def test_vblr_ap_to_zz(self) -> None:
 | 
						|
        """ all of the valid values for the AP options map to valid values for ZZ options """
 | 
						|
        for option_name, vblr_class in (
 | 
						|
            ("jump_levels", ZillionJumpLevels),
 | 
						|
            ("gun_levels", ZillionGunLevels)
 | 
						|
        ):
 | 
						|
            for value in vblr_class.name_lookup.values():
 | 
						|
                self.options = {option_name: value}
 | 
						|
                self.world_setup()
 | 
						|
                options = self.multiworld.worlds[1].options
 | 
						|
                assert isinstance(options, ZillionOptions)
 | 
						|
                zz_options, _item_counts = validate(options)
 | 
						|
                assert getattr(zz_options, option_name) in VBLR_CHOICES
 | 
						|
 | 
						|
    # TODO: test validate with invalid combinations of options
 |