47
41
descr=_"The breath-taking beauty of these ..."
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')
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" )
62
52
def testName(self):
63
self.assertEqual(self.m.name, 'Elven Forests')
53
self.assertEqual( self.m.name, "Elven Forests")
65
54
def testAuthor(self):
66
self.assertEqual(self.m.author, 'Winterwind')
55
self.assertEqual( self.m.author, "Winterwind" )
68
56
def testDescr(self):
69
self.assertEqual(self.m.descr, 'The breath-taking beauty of these ...')
57
self.assertEqual( self.m.descr, "The breath-taking beauty of these ..." )
76
class TestElementalReading_TestMissingSection_ExceptRaises(_WLSetup):
62
class TestElementalReading_TestMissingSection_ExceptRaises(_WLSetup ):
78
input = """[globalnoglbale]
64
input="""[globalnoglbale]
84
self.assertRaises(InvalidMapPackage, self.m._read_elemental,
69
self.assertRaises( InvalidMapPackage, self.m._read_elemental,
70
StringIO(self.input) )
88
73
# {{{ Height package tests
91
class _WLHeight_Base(unittest.TestCase):
74
class _WLHeight_Base( unittest.TestCase ):
94
76
self.m = WidelandsMap()
95
77
self.m._dim = self.dim
96
self.m._read_heights(StringIO(self.input))
99
class _WLHeight_Setup(unittest.TestCase):
78
self.m._read_heights( StringIO(self.input) )
79
class _WLHeight_Setup( unittest.TestCase ):
102
81
self.m = WidelandsMap()
103
82
self.m._dim = self.dim
111
class TestHeightReading_ValidInput_ExceptCorrectResult(_WLHeight_Base):
88
class TestHeightReading_ValidInput_ExceptCorrectResult( _WLHeight_Base ):
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'
91
input = "\x01\x00)!\x08*\x0b1\x18-0\x1d\x03\x08.\x1e\x01\x19\x1f\x1d\x17\x17\x1c\x07#5"
115
92
wanted = array([[41, 33, 8, 42, 11, 49],
116
[24, 45, 48, 29, 3, 8],
117
[46, 30, 1, 25, 31, 29],
118
[23, 23, 28, 7, 35, 53]])
93
[24, 45, 48, 29, 3, 8],
94
[46, 30, 1, 25, 31, 29],
95
[23, 23, 28, 7, 35, 53]])
121
97
def runTest(self):
122
self.assertTrue(all(self.wanted == self.m.heights))
98
self.assertTrue( all(self.wanted == self.m.heights ) )
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)
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 )
153
120
# {{{ Terrain package tests
156
class _WLTerrain_Base(unittest.TestCase):
121
class _WLTerrain_Base( unittest.TestCase ):
159
123
self.m = WidelandsMap()
160
124
self.m._dim = self.dim
161
self.m._read_terrains(StringIO(self.input))
164
class _WLTerrain_Setup(unittest.TestCase):
125
self.m._read_terrains( StringIO(self.input) )
126
class _WLTerrain_Setup( unittest.TestCase ):
167
128
self.m = WidelandsMap()
168
129
self.m._dim = self.dim
171
132
#################
172
133
# Working Tests #
173
134
#################
176
class TestTerrainReading_ValidInput_ExceptCorrectResult(_WLTerrain_Base):
135
class TestTerrainReading_ValidInput_ExceptCorrectResult( _WLTerrain_Base ):
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']])
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" ]] )
188
146
def test_R(self):
189
r = [i.name == j for i, j in izip(
190
self.m.ter_r.flat, self.ter_r_names.flat)]
191
self.assertTrue(all(r))
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))
193
149
def test_D(self):
194
d = [i.name == j for i, j in izip(
195
self.m.ter_d.flat, self.ter_d_names.flat)]
196
self.assertTrue(all(d))
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))
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)
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 )