3 sys.path.append(
"../src/")
4 from math
import pi, e, sqrt
5 from prettytable
import *
9 """Make sure that building a table row-by-row and column-by-column yield the same results"""
15 self.row.field_names = [
"City name",
"Area",
"Population",
"Annual Rainfall"]
16 self.row.add_row([
"Adelaide",1295, 1158259, 600.5])
17 self.row.add_row([
"Brisbane",5905, 1857594, 1146.4])
18 self.row.add_row([
"Darwin", 112, 120900, 1714.7])
19 self.row.add_row([
"Hobart", 1357, 205556, 619.5])
20 self.row.add_row([
"Sydney", 2058, 4336374, 1214.8])
21 self.row.add_row([
"Melbourne", 1566, 3806092, 646.9])
22 self.row.add_row([
"Perth", 5386, 1554769, 869.4])
26 self.col.add_column(
"City name",[
"Adelaide",
"Brisbane",
"Darwin",
"Hobart",
"Sydney",
"Melbourne",
"Perth"])
27 self.col.add_column(
"Area", [1295, 5905, 112, 1357, 2058, 1566, 5386])
28 self.col.add_column(
"Population", [1158259, 1857594, 120900, 205556, 4336374, 3806092, 1554769])
29 self.col.add_column(
"Annual Rainfall",[600.5, 1146.4, 1714.7, 619.5, 1214.8, 646.9, 869.4])
33 self.mix.field_names = [
"City name",
"Area"]
34 self.mix.add_row([
"Adelaide",1295])
35 self.mix.add_row([
"Brisbane",5905])
36 self.mix.add_row([
"Darwin", 112])
37 self.mix.add_row([
"Hobart", 1357])
38 self.mix.add_row([
"Sydney", 2058])
39 self.mix.add_row([
"Melbourne", 1566])
40 self.mix.add_row([
"Perth", 5386])
41 self.mix.add_column(
"Population", [1158259, 1857594, 120900, 205556, 4336374, 3806092, 1554769])
42 self.mix.add_column(
"Annual Rainfall",[600.5, 1146.4, 1714.7, 619.5, 1214.8, 646.9, 869.4])
46 self.assertEqual(self.row.get_string(), self.col.get_string())
50 self.assertEqual(self.row.get_string(), self.mix.get_string())
54 self.assertEqual(self.row.get_html_string(), self.col.get_html_string())
58 self.assertEqual(self.row.get_html_string(), self.mix.get_html_string())
86 """Just build the Australian capital city data example table."""
90 self.
x =
PrettyTable([
"City name",
"Area",
"Population",
"Annual Rainfall"])
91 self.x.add_row([
"Adelaide",1295, 1158259, 600.5])
92 self.x.add_row([
"Brisbane",5905, 1857594, 1146.4])
93 self.x.add_row([
"Darwin", 112, 120900, 1714.7])
94 self.x.add_row([
"Hobart", 1357, 205556, 619.5])
95 self.x.add_row([
"Sydney", 2058, 4336374, 1214.8])
96 self.x.add_row([
"Melbourne", 1566, 3806092, 646.9])
97 self.x.add_row([
"Perth", 5386, 1554769, 869.4])
101 """Make sure all options are properly overwritten by printt."""
104 default = self.x.get_string()
105 override = self.x.get_string(border=
False)
106 self.assertTrue(default != override)
109 default = self.x.get_string()
110 override = self.x.get_string(header=
False)
111 self.assertTrue(default != override)
114 default = self.x.get_string()
115 override = self.x.get_string(hrules=ALL)
116 self.assertTrue(default != override)
120 default = self.x.get_string()
121 override = self.x.get_string(hrules=NONE)
122 self.assertTrue(default != override)
126 """Some very basic tests."""
130 """No table should ever have blank lines in it."""
132 string = self.x.get_string()
133 lines = string.split(
"\n")
134 self.assertTrue(
"" not in lines)
138 """All lines in a table should be of the same length."""
140 string = self.x.get_string()
141 lines = string.split(
"\n")
142 lengths = [
len(line)
for line
in lines]
143 lengths = set(lengths)
144 self.assertEqual(
len(lengths),1)
148 """Run the basic tests with border = False"""
151 BasicTests.setUp(self)
152 self.x.border =
False
156 """Run the basic tests with header = False"""
159 BasicTests.setUp(self)
160 self.x.header =
False
164 """Run the basic tests with hrules = NONE"""
167 BasicTests.setUp(self)
172 """Run the basic tests with hrules = ALL"""
175 BasicTests.setUp(self)
180 """Run the basic tests after using set_style"""
183 BasicTests.setUp(self)
184 self.x.set_style(MSWORD_FRIENDLY)
189 CityDataTest.setUp(self)
193 string = y.get_string()
194 assert len(string.split(
"\n")) == 6
195 assert "Adelaide" in string
196 assert "Brisbane" in string
197 assert "Melbourne" not in string
198 assert "Perth" not in string
202 string = y.get_string()
203 assert len(string.split(
"\n")) == 6
204 assert "Adelaide" not in string
205 assert "Brisbane" not in string
206 assert "Melbourne" in string
207 assert "Perth" in string
212 CityDataTest.setUp(self)
215 self.x.sortby = self.x.field_names[0]
216 old = self.x.get_string()
217 for field
in self.x.field_names[1:]:
218 self.x.sortby = field
219 new = self.x.get_string()
223 for field
in self.x.field_names:
224 self.x.sortby = field
225 self.x.reversesort =
False
226 forward = self.x.get_string()
227 self.x.reversesort =
True
228 backward = self.x.get_string()
229 forward_lines = forward.split(
"\n")[2:]
230 backward_lines = backward.split(
"\n")[2:]
231 backward_lines.reverse()
232 assert forward_lines == backward_lines
237 vals[0] =
len(vals[0])
239 self.x.sortby =
"City name"
240 self.x.sort_key = key
241 assert self.x.get_string().
strip() ==
"""+-----------+------+------------+-----------------+
242 | City name | Area | Population | Annual Rainfall |
243 +-----------+------+------------+-----------------+
244 | Perth | 5386 | 1554769 | 869.4 |
245 | Darwin | 112 | 120900 | 1714.7 |
246 | Hobart | 1357 | 205556 | 619.5 |
247 | Sydney | 2058 | 4336374 | 1214.8 |
248 | Adelaide | 1295 | 1158259 | 600.5 |
249 | Brisbane | 5905 | 1857594 | 1146.4 |
250 | Melbourne | 1566 | 3806092 | 646.9 |
251 +-----------+------+------------+-----------------+
256 """Run the basic tests after setting an integer format string"""
259 BasicTests.setUp(self)
260 self.x.int_format =
"04"
264 """Run the basic tests after setting a float format string"""
267 BasicTests.setUp(self)
268 self.x.float_format =
"6.2"
274 self.x.add_row([
"Pi", pi])
275 self.x.add_row([
"e", e])
276 self.x.add_row([
"sqrt(2)", sqrt(2)])
279 self.x.float_format =
".0"
280 self.x.caching =
False
281 assert "." not in self.x.get_string()
284 self.x.float_format =
".5"
285 string = self.x.get_string()
286 assert "3.14159" in string
287 assert "3.141592" not in string
288 assert "2.71828" in string
289 assert "2.718281" not in string
290 assert "2.718282" not in string
291 assert "1.41421" in string
292 assert "1.414213" not in string
295 self.x.float_format =
"06.2"
296 string = self.x.get_string()
297 assert "003.14" in string
298 assert "002.72" in string
299 assert "001.41" in string
304 t.add_row([
'value 1',
'value2\nsecond line'])
305 t.add_row([
'value 3',
'value4'])
306 result = t.get_string(hrules=
True)
307 assert result.strip() ==
"""
308 +---------+-------------+
309 | Field 1 | Field 2 |
310 +---------+-------------+
313 +---------+-------------+
315 +---------+-------------+
319 t.add_row([
'value 1',
'value2\nsecond line'])
320 t.add_row([
'value 3\n\nother line',
'value4\n\n\nvalue5'])
321 result = t.get_string(hrules=
True)
322 assert result.strip() ==
"""
323 +------------+-------------+
324 | Field 1 | Field 2 |
325 +------------+-------------+
328 +------------+-------------+
333 +------------+-------------+
337 t.add_row([
'value 1',
'value2\nsecond line'])
338 t.add_row([
'value 3\n\nother line',
'value4\n\n\nvalue5'])
339 result = t.get_string()
340 assert result.strip() ==
"""
341 +------------+-------------+
342 | Field 1 | Field 2 |
343 +------------+-------------+
350 +------------+-------------+
355 t.add_row([
'value 1',
'value2\nsecond line'])
356 t.add_row([
'value 3',
'value4'])
357 result = t.get_html_string(hrules=
True)
358 assert result.strip() ==
"""
366 <td>value2<br />second line</td>
378 t.add_row([
'value 1',
'value2',
'value3'])
379 t.add_row([
'value 4',
'value5',
'value6'])
380 t.add_row([
'value 7',
'value8',
'value9'])
381 result = t.get_html_string()
382 assert result.strip() ==
"""
409 t.add_row([
'value 1',
'value2',
'value3'])
410 t.add_row([
'value 4',
'value5',
'value6'])
411 t.add_row([
'value 7',
'value8',
'value9'])
412 result = t.get_html_string(format=
True)
413 assert result.strip() ==
"""
416 <th style="padding-left: 1em; padding-right: 1em; text-align: center">Field 1</th>
417 <th style="padding-left: 1em; padding-right: 1em; text-align: center">Field 2</th>
418 <th style="padding-left: 1em; padding-right: 1em; text-align: center">Field 3</th>
421 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value 1</td>
422 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value2</td>
423 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value3</td>
426 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value 4</td>
427 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value5</td>
428 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value6</td>
431 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value 7</td>
432 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value8</td>
433 <td style="padding-left: 1em; padding-right: 1em; text-align: center">value9</td>
438 if __name__ ==
"__main__":
Fstring::size_type len(Fstring const &s)
Length.
std::string & strip(std::string &s, std::string const &chars)
Strip Specified Characters from a string's Tails.
utility::keys::lookup::key< KeyType > const key