|
5 | 5 | os.chdir(os.path.dirname(__file__)) |
6 | 6 |
|
7 | 7 |
|
| 8 | +def clean_float(numstr): |
| 9 | + # round numbers to 3 digits, to remove floating-point differences |
| 10 | + return round(float(numstr), 3) |
| 11 | + |
| 12 | + |
8 | 13 | def get_fig(html): |
9 | 14 | # strip off all the rest of the html and js |
10 | 15 | fig_str = html[html.index("[{", html.rindex("Plotly.newPlot(")) :] |
11 | 16 | fig_str = fig_str[: fig_str.index("} ") + 1] |
12 | | - data, layout, config = json.loads(f"[{fig_str}]") |
| 17 | + data, layout, config = json.loads(f"[{fig_str}]", parse_float=clean_float) |
13 | 18 | fig_dict = dict(data=data, layout=layout, config=config) |
14 | 19 | return json.dumps(fig_dict, indent=2).splitlines(keepends=True) |
15 | 20 |
|
16 | 21 |
|
17 | 22 | for filename in os.listdir("pandas2"): |
18 | | - if filename not in [ |
19 | | - "density_mapbox.html", |
20 | | - "scatter_hover.html", |
21 | | - "scatter_mapbox.html", |
22 | | - "line.html", |
23 | | - "choropleth.html", |
24 | | - "line_mapbox.html", |
25 | | - "scatter_log.html", |
26 | | - ]: |
27 | | - with open(filename, encoding="utf-8") as f1: |
28 | | - with open(os.path.join("pandas2", filename)) as f2: |
29 | | - fig1 = get_fig(f1.read()) |
30 | | - fig2 = get_fig(f2.read()) |
31 | | - if any(l1 != l2 for l1, l2 in zip(fig1, fig2)): |
32 | | - print("".join(difflib.unified_diff(fig1, fig2))) |
33 | | - raise ValueError(f"Pandas 1/2 difference in {filename}") |
| 23 | + with open(filename, encoding="utf-8") as f1: |
| 24 | + with open(os.path.join("pandas2", filename)) as f2: |
| 25 | + fig1 = get_fig(f1.read()) |
| 26 | + fig2 = get_fig(f2.read()) |
| 27 | + if any(l1 != l2 for l1, l2 in zip(fig1, fig2)): |
| 28 | + print("".join(difflib.unified_diff(fig1, fig2))) |
| 29 | + raise ValueError(f"Pandas 1/2 difference in {filename}") |
0 commit comments