-
Notifications
You must be signed in to change notification settings - Fork 1
/
test case for Terrain.py
105 lines (89 loc) · 2.89 KB
/
test case for Terrain.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
93
94
95
96
97
98
99
100
101
102
103
104
105
"""
Tests from terrain.py
"""
class Terrain:
def __init__(self, width, height, depth):
"""
@brief Class constructor to initialize the terrain.
@param width (int): The width of the terrain.
@param height (int): The height of the terrain.
@param depth (int): The depth of the terrain.
"""
self.width = width
self.height = height
self.depth = depth
self.terrain = [[[None for _ in range(depth)] for _ in range(height)] for _ in range(width)]
def add_water(self, start_x, start_y, start_z, width, height, depth):
"""
@brief Add water blocks to the terrain within the specified coordinates and dimensions.
@param start_x (int): The starting x-coordinate.
@param start_y (int): The starting y-coordinate.
@param start_z (int): The starting z-coordinate.
@param width (int): The width of the water area.
@param height (int): The height of the water area.
@param depth (int): The depth of the water area.
"""
for x in range(start_x, start_x + width):
for y in range(start_y, start_y + height):
for z in range(start_z, start_z + depth):
self.terrain[x][y][z] = "blue"
def print_terrain(self):
"""
@brief Print the current state of the terrain.
"""
for y in range(self.height):
for z in range(self.depth):
for x in range(self.width):
block = self.terrain[x][y][z]
if block is None:
print(" ", end="")
else:
print(block + " ", end="")
print()
print()
def test_terrain():
# Test case 1
terrain = Terrain(10, 5, 10)
terrain.add_water(3, 1, 3, 4, 1, 4)
print("Test Case 1:")
terrain.print_terrain()
print("\n")
# Test case 2
terrain = Terrain(10, 5, 10)
terrain.add_water(0, 0, 0, 2, 3, 4)
print("Test Case 2:")
terrain.print_terrain()
print("\n")
# Test case 3
terrain = Terrain(10, 5, 10)
terrain.add_water(5, 0, 5, 3, 2, 3)
print("Test Case 3:")
terrain.print_terrain()
print("\n")
# Test case 4
terrain = Terrain(10, 5, 10)
terrain.add_water(0, 2, 0, 5, 1, 2)
print("Test Case 4:")
terrain.print_terrain()
print("\n")
# Test case 5
terrain = Terrain(10, 5, 10)
terrain.add_water(8, 4, 8, 2, 1, 2)
print("Test Case 5:")
terrain.print_terrain()
print("\n")
# Print the total number of tests run
total_tests = 5
print(f"Total tests run: {total_tests}")
def main():
test_terrain()
if __name__ == "__main__":
main()
"""
Expected Output:
blue blue blue
blue blue blue
blue blue blue
ran 5 testcase in 0.01
ok
"""