-
Notifications
You must be signed in to change notification settings - Fork 1
/
testcase for Snow.py
92 lines (74 loc) · 3.37 KB
/
testcase for Snow.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""
Tests from snow.py
"""
import unittest
class Player:
def __init__(self):
self.inventory = [] # Initialize an empty inventory for the player
def add_item_to_inventory(self, item):
self.inventory.append(item) # Add an item to the player's inventory
def equip_tool(self, tool):
self.equipped_tool = tool # Set the equipped tool for the player
class Inventory:
def __init__(self):
self.items = [] # Initialize an empty list to store items in the inventory
def add_item(self, item):
self.items.append(item) # Add an item to the inventory
class SnowBlock:
def __init__(self):
self.is_broken = False # Initialize the snow block as not broken
self.slipperiness = 0.6 # Set the slipperiness value for the snow block
def on_player_interact(self, player):
if hasattr(player, "equipped_tool") and player.equipped_tool == "shovel":
self.is_broken = True # Mark the snow block as broken if the player has a shovel
class InventoryRenderer:
def render(self, inventory):
rendered_inventory = ""
for item in inventory.items:
rendered_inventory += item + "\n" # Render each item in the inventory
return rendered_inventory
class Shovel:
pass # Define the Shovel class as empty for now
class SnowBlockTestCase(unittest.TestCase):
## @brief Test case for adding a snow block to the player's inventory.
def test_add_snow_block_to_inventory(self):
player = Player()
snow_block = SnowBlock()
player.add_item_to_inventory(snow_block)
self.assertIn(snow_block, player.inventory) # Check if the snow block is added to the player's inventory
## @brief Test case for rendering the snow block in the inventory.
def test_render_snow_block_in_inventory(self):
player = Player()
inventory = Inventory()
snow_block = SnowBlock()
inventory.add_item("White Block (Snow)")
inventory_renderer = InventoryRenderer()
rendered_inventory = inventory_renderer.render(inventory)
self.assertIsNotNone(rendered_inventory) # Check if the rendered inventory is not None
self.assertIn("White Block (Snow)", rendered_inventory) # Check if the snow block is rendered in the inventory
## @brief Test case for checking the slipperiness value of the snow block.
def test_slipperiness_of_snow_block(self):
snow_block = SnowBlock()
self.assertAlmostEqual(snow_block.slipperiness, 0.6, delta=0.001) # Check if the slipperiness value is approximately 0.6
## @brief Test case for checking if the snow block is not broken without a shovel.
def test_snow_block_not_broken_without_shovel(self):
player = Player()
snow_block = SnowBlock()
snow_block.on_player_interact(player)
self.assertFalse(snow_block.is_broken) # Check if the snow block is not broken without a shovel
## @brief Test case for equipping a tool for the player.
def test_equip_tool(self):
player = Player()
shovel = Shovel()
player.equip_tool(shovel)
self.assertEqual(player.equipped_tool, shovel) # Check if the player's equipped tool is the shovel
if __name__ == '__main__':
unittest.main()
"""
expected value:
White Block (Snow)
.....
----------------------------------------------------------------------
Ran 5 tests in 0.000s
OK
"""