41
47
descr=_"The breath-taking beauty of these ..."
44
def testDimensions( self ):
45
self.assertEqual( self.m.w, 160 )
46
self.assertEqual( self.m.h, 132 )
47
self.assertEqual( self.m.dim, (132,160) )
48
def testNrPlayers( self ):
49
self.assertEqual( self.m.nr_players, 4 )
50
def testWorldName( self ):
51
self.assertEqual( self.m.world_name, "greenland" )
51
def testDimensions(self):
52
self.assertEqual(self.m.w, 160)
53
self.assertEqual(self.m.h, 132)
54
self.assertEqual(self.m.dim, (132, 160))
56
def testNrPlayers(self):
57
self.assertEqual(self.m.nr_players, 4)
59
def testWorldName(self):
60
self.assertEqual(self.m.world_name, 'greenland')
52
62
def testName(self):
53
self.assertEqual( self.m.name, "Elven Forests")
63
self.assertEqual(self.m.name, 'Elven Forests')
54
65
def testAuthor(self):
55
self.assertEqual( self.m.author, "Winterwind" )
66
self.assertEqual(self.m.author, 'Winterwind')
56
68
def testDescr(self):
57
self.assertEqual( self.m.descr, "The breath-taking beauty of these ..." )
69
self.assertEqual(self.m.descr, 'The breath-taking beauty of these ...')
62
class TestElementalReading_TestMissingSection_ExceptRaises(_WLSetup ):
76
class TestElementalReading_TestMissingSection_ExceptRaises(_WLSetup):
64
input="""[globalnoglbale]
78
input = """[globalnoglbale]
69
self.assertRaises( InvalidMapPackage, self.m._read_elemental,
70
StringIO(self.input) )
84
self.assertRaises(InvalidMapPackage, self.m._read_elemental,
73
88
# {{{ Height package tests
74
class _WLHeight_Base( unittest.TestCase ):
91
class _WLHeight_Base(unittest.TestCase):
76
94
self.m = WidelandsMap()
77
95
self.m._dim = self.dim
78
self.m._read_heights( StringIO(self.input) )
79
class _WLHeight_Setup( unittest.TestCase ):
96
self.m._read_heights(StringIO(self.input))
99
class _WLHeight_Setup(unittest.TestCase):
81
102
self.m = WidelandsMap()
82
103
self.m._dim = self.dim
88
class TestHeightReading_ValidInput_ExceptCorrectResult( _WLHeight_Base ):
111
class TestHeightReading_ValidInput_ExceptCorrectResult(_WLHeight_Base):
91
input = "\x01\x00)!\x08*\x0b1\x18-0\x1d\x03\x08.\x1e\x01\x19\x1f\x1d\x17\x17\x1c\x07#5"
113
dim = (4, 6) # w6, h4
114
input = '\x01\x00)!\x08*\x0b1\x18-0\x1d\x03\x08.\x1e\x01\x19\x1f\x1d\x17\x17\x1c\x07#5'
92
115
wanted = array([[41, 33, 8, 42, 11, 49],
93
[24, 45, 48, 29, 3, 8],
94
[46, 30, 1, 25, 31, 29],
95
[23, 23, 28, 7, 35, 53]])
116
[24, 45, 48, 29, 3, 8],
117
[46, 30, 1, 25, 31, 29],
118
[23, 23, 28, 7, 35, 53]])
97
121
def runTest(self):
98
self.assertTrue( all(self.wanted == self.m.heights ) )
122
self.assertTrue(all(self.wanted == self.m.heights))
103
class TestHeightReading_WrongVersion_ExceptRaises(_WLHeight_Setup ):
105
input = "\x00\x02jdhf"
107
self.assertRaises( InvalidMapPackage, self.m._read_heights, self.input )
108
class TestHeightReading_PackageToShort_ExceptRaises(_WLHeight_Setup ):
110
input = "\x01\x00jdhf"
112
self.assertRaises( InvalidMapPackage, self.m._read_heights, self.input )
113
class TestHeightReading_PackageToLong(_WLHeight_Setup ):
115
input = "\x01\x00jdhkkf"
117
self.assertRaises( InvalidMapPackage, self.m._read_heights, self.input )
129
class TestHeightReading_WrongVersion_ExceptRaises(_WLHeight_Setup):
131
input = '\x00\x02jdhf'
134
self.assertRaises(InvalidMapPackage, self.m._read_heights, self.input)
137
class TestHeightReading_PackageToShort_ExceptRaises(_WLHeight_Setup):
139
input = '\x01\x00jdhf'
142
self.assertRaises(InvalidMapPackage, self.m._read_heights, self.input)
145
class TestHeightReading_PackageToLong(_WLHeight_Setup):
147
input = '\x01\x00jdhkkf'
150
self.assertRaises(InvalidMapPackage, self.m._read_heights, self.input)
120
153
# {{{ Terrain package tests
121
class _WLTerrain_Base( unittest.TestCase ):
156
class _WLTerrain_Base(unittest.TestCase):
123
159
self.m = WidelandsMap()
124
160
self.m._dim = self.dim
125
self.m._read_terrains( StringIO(self.input) )
126
class _WLTerrain_Setup( unittest.TestCase ):
161
self.m._read_terrains(StringIO(self.input))
164
class _WLTerrain_Setup(unittest.TestCase):
128
167
self.m = WidelandsMap()
129
168
self.m._dim = self.dim
132
171
#################
133
172
# Working Tests #
134
173
#################
135
class TestTerrainReading_ValidInput_ExceptCorrectResult( _WLTerrain_Base ):
176
class TestTerrainReading_ValidInput_ExceptCorrectResult(_WLTerrain_Base):
138
input = ("\x01\x00" + # Package version
139
"\x02\x00" + # Nr of terrain types
140
"\x00\x00Baum\x00\x01\x00Haus\x00" + # Terrains (id,Name\x00)
141
"\x01\x00\x00\x01" # Terrain data (ter_r,ter_d)*nr_of_fields
143
ter_r_names = array([[ "Haus", "Baum" ]] )
144
ter_d_names = array([[ "Baum", "Haus" ]] )
178
dim = (1, 2) # w6, h4
179
input = ('\x01\x00' + # Package version
180
'\x02\x00' + # Nr of terrain types
181
'\x00\x00Baum\x00\x01\x00Haus\x00' + # Terrains (id,Name\x00)
182
'\x01\x00\x00\x01' # Terrain data (ter_r,ter_d)*nr_of_fields
184
ter_r_names = array([['Haus', 'Baum']])
185
ter_d_names = array([['Baum', 'Haus']])
146
188
def test_R(self):
147
r = [ i.name == j for i,j in izip(self.m.ter_r.flat,self.ter_r_names.flat) ]
148
self.assertTrue( all(r))
189
r = [i.name == j for i, j in zip(
190
self.m.ter_r.flat, self.ter_r_names.flat)]
191
self.assertTrue(all(r))
149
193
def test_D(self):
150
d = [ i.name == j for i,j in izip(self.m.ter_d.flat,self.ter_d_names.flat) ]
151
self.assertTrue( all(d))
194
d = [i.name == j for i, j in zip(
195
self.m.ter_d.flat, self.ter_d_names.flat)]
196
self.assertTrue(all(d))
156
class TestTerrainReading_WrongVersion_ExceptRaises(_WLTerrain_Setup ):
158
input = "\x00\x02jdhf"
160
self.assertRaises( InvalidMapPackage, self.m._read_terrains, self.input )
161
class TestTerrainReading_PackageToShort_ExceptRaises(_WLTerrain_Setup ):
163
input = "\x01\x00jdhf"
165
self.assertRaises( InvalidMapPackage, self.m._read_terrains, self.input )
166
class TestTerrainReading_PackageToLong(_WLTerrain_Setup ):
168
input = ("\x01\x00" + # Package version
169
"\x02\x00" + # Nr of terrain types
170
"\x00\x00Baum\x00\x01\x00Haus\x00" + # Terrains (id,Name\x00)
171
"\x02\x03\x04\x00\x00\x01" # Terrain data (ter_r,ter_d)*nr_of_fields
173
ter_r_names = array([[ "Haus", "Baum" ]] )
174
ter_d_names = array([[ "Baum", "Haus" ]] )
176
self.assertRaises( InvalidMapPackage, self.m._read_terrains, self.input )
177
class TestTerrainReading_WrongTerrainId(_WLTerrain_Setup ):
179
input = ("\x01\x00" + # Package version
180
"\x02\x00" + # Nr of terrain types
181
"\x00\x00Baum\x00\x01\x00Haus\x00" + # Terrains (id,Name\x00)
182
"\x00\x00\x02\x00" # Terrain data (ter_r,ter_d)*nr_of_fields
185
self.assertRaises( InvalidMapPackage, self.m._read_terrains, self.input )
203
class TestTerrainReading_WrongVersion_ExceptRaises(_WLTerrain_Setup):
205
input = '\x00\x02jdhf'
208
self.assertRaises(InvalidMapPackage, self.m._read_terrains, self.input)
211
class TestTerrainReading_PackageToShort_ExceptRaises(_WLTerrain_Setup):
213
input = '\x01\x00jdhf'
216
self.assertRaises(InvalidMapPackage, self.m._read_terrains, self.input)
219
class TestTerrainReading_PackageToLong(_WLTerrain_Setup):
220
dim = (1, 2) # w6, h4
221
input = ('\x01\x00' + # Package version
222
'\x02\x00' + # Nr of terrain types
223
'\x00\x00Baum\x00\x01\x00Haus\x00' + # Terrains (id,Name\x00)
224
# Terrain data (ter_r,ter_d)*nr_of_fields
225
'\x02\x03\x04\x00\x00\x01'
227
ter_r_names = array([['Haus', 'Baum']])
228
ter_d_names = array([['Baum', 'Haus']])
231
self.assertRaises(InvalidMapPackage, self.m._read_terrains, self.input)
234
class TestTerrainReading_WrongTerrainId(_WLTerrain_Setup):
235
dim = (1, 2) # w6, h4
236
input = ('\x01\x00' + # Package version
237
'\x02\x00' + # Nr of terrain types
238
'\x00\x00Baum\x00\x01\x00Haus\x00' + # Terrains (id,Name\x00)
239
'\x00\x00\x02\x00' # Terrain data (ter_r,ter_d)*nr_of_fields
243
self.assertRaises(InvalidMapPackage, self.m._read_terrains, self.input)