53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import unittest
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from ....content import choose_tool_progression
							 | 
						||
| 
								 | 
							
								from ....options import ToolProgression, SkillProgression
							 | 
						||
| 
								 | 
							
								from ....strings.tool_names import Tool
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestToolDistribution(unittest.TestCase):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_given_vanilla_tool_progression_when_create_feature_then_only_one_scythe_is_randomized(self):
							 | 
						||
| 
								 | 
							
								        tool_progression = ToolProgression(ToolProgression.option_vanilla)
							 | 
						||
| 
								 | 
							
								        skill_progression = SkillProgression.from_text("random")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        feature = choose_tool_progression(tool_progression, skill_progression)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        self.assertEqual(feature.tool_distribution, {
							 | 
						||
| 
								 | 
							
								            Tool.scythe: 1,
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_given_progressive_tool_when_create_feature_then_all_tool_upgrades_are_randomized(self):
							 | 
						||
| 
								 | 
							
								        tool_progression = ToolProgression(ToolProgression.option_progressive)
							 | 
						||
| 
								 | 
							
								        skill_progression = SkillProgression(SkillProgression.option_progressive)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        feature = choose_tool_progression(tool_progression, skill_progression)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        self.assertEqual(feature.tool_distribution, {
							 | 
						||
| 
								 | 
							
								            Tool.scythe: 1,
							 | 
						||
| 
								 | 
							
								            Tool.pickaxe: 4,
							 | 
						||
| 
								 | 
							
								            Tool.axe: 4,
							 | 
						||
| 
								 | 
							
								            Tool.hoe: 4,
							 | 
						||
| 
								 | 
							
								            Tool.watering_can: 4,
							 | 
						||
| 
								 | 
							
								            Tool.trash_can: 4,
							 | 
						||
| 
								 | 
							
								            Tool.pan: 4,
							 | 
						||
| 
								 | 
							
								            Tool.fishing_rod: 4,
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_given_progressive_tool_and_skill_masteries_when_create_feature_then_additional_scythe_and_fishing_rod_are_randomized(self):
							 | 
						||
| 
								 | 
							
								        tool_progression = ToolProgression(ToolProgression.option_progressive)
							 | 
						||
| 
								 | 
							
								        skill_progression = SkillProgression(SkillProgression.option_progressive_with_masteries)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        feature = choose_tool_progression(tool_progression, skill_progression)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        self.assertEqual(feature.tool_distribution, {
							 | 
						||
| 
								 | 
							
								            Tool.scythe: 2,
							 | 
						||
| 
								 | 
							
								            Tool.pickaxe: 4,
							 | 
						||
| 
								 | 
							
								            Tool.axe: 4,
							 | 
						||
| 
								 | 
							
								            Tool.hoe: 4,
							 | 
						||
| 
								 | 
							
								            Tool.watering_can: 4,
							 | 
						||
| 
								 | 
							
								            Tool.trash_can: 4,
							 | 
						||
| 
								 | 
							
								            Tool.pan: 4,
							 | 
						||
| 
								 | 
							
								            Tool.fishing_rod: 5,
							 | 
						||
| 
								 | 
							
								        })
							 |