|
10 | 10 |
|
11 | 11 | from metpy.cbook import get_test_data |
12 | 12 | from metpy.io import parse_metar_file, parse_metar_to_dataframe |
| 13 | +from metpy.io._metar_parser.metar_parser import parse |
13 | 14 | from metpy.io.metar import Metar, parse_metar |
14 | 15 | from metpy.units import units |
15 | 16 |
|
@@ -352,3 +353,29 @@ def test_parse_no_pint_objects_in_df(): |
352 | 353 | for df in (parse_metar_file(input_file), parse_metar_to_dataframe(metar_str)): |
353 | 354 | for column in df: |
354 | 355 | assert not isinstance(df[column][0], units.Quantity) |
| 356 | + |
| 357 | + |
| 358 | +def test_repr(): |
| 359 | + """Test that the TreeNode string representation works.""" |
| 360 | + str1 = 'KSMQ 201953Z AUTO VRB05KT 10SM CLR 03/M10 A3026' |
| 361 | + tree = parse(str1) |
| 362 | + rep = repr(tree) |
| 363 | + assert rep == ("TreeNode1(text='KSMQ 201953Z AUTO VRB05KT 10SM CLR 03/M10 A3026', " |
| 364 | + "offset=0, metar=TreeNode(text='', offset=0), " |
| 365 | + "siteid=TreeNode(text='KSMQ', offset=0), " |
| 366 | + "datetime=TreeNode2(text=' 201953Z', offset=4, " |
| 367 | + "sep=TreeNode(text=' ', offset=4)), " |
| 368 | + "auto=TreeNode(text=' AUTO', offset=12), " |
| 369 | + "wind=TreeNode4(text=' VRB05KT', offset=17, " |
| 370 | + "wind_dir=TreeNode(text='VRB', offset=18), " |
| 371 | + "wind_spd=TreeNode(text='05', offset=21), " |
| 372 | + "gust=TreeNode(text='', offset=23)), " |
| 373 | + "vis=TreeNode6(text=' 10SM', offset=25, " |
| 374 | + "sep=TreeNode(text=' ', offset=25)), run=TreeNode(text='', offset=30), " |
| 375 | + "curwx=TreeNode(text='', offset=30), " |
| 376 | + "skyc=TreeNode(text=' CLR', offset=30), " |
| 377 | + "temp_dewp=TreeNode13(text=' 03/M10', offset=34, " |
| 378 | + "sep=TreeNode(text=' ', offset=34), temp=TreeNode(text='03', offset=35), " |
| 379 | + "dewp=TreeNode(text='M10', offset=38)), " |
| 380 | + "altim=TreeNode(text=' A3026', offset=41), " |
| 381 | + "remarks=TreeNode(text='', offset=47), end=TreeNode(text='', offset=47))") |
0 commit comments