|
9 | 9 | import pandas
|
10 | 10 | import pandas.testing
|
11 | 11 | import geopandas
|
| 12 | +import matplotlib.pyplot |
| 13 | +import seaborn |
| 14 | +import PIL.Image |
12 | 15 |
|
13 | 16 | import spotfire
|
14 | 17 | from spotfire import sbdf
|
@@ -413,3 +416,43 @@ def test_non_str_column_name(self):
|
413 | 416 | df2 = sbdf.import_data(f"{tempdir}/output.sbdf")
|
414 | 417 | for i, col in enumerate(df2.columns):
|
415 | 418 | self.assertEqual(type(col), str, f"df2.columns[{i}] = {repr(col)}")
|
| 419 | + |
| 420 | + def test_image_matplot(self): |
| 421 | + """Verify Matplotlib figures export properly""" |
| 422 | + matplotlib.pyplot.clf() |
| 423 | + fig, _ = matplotlib.pyplot.subplots() |
| 424 | + with tempfile.TemporaryDirectory() as tempdir: |
| 425 | + sbdf.export_data(fig, f"{tempdir}/output.sbdf") |
| 426 | + df2 = sbdf.import_data(f"{tempdir}/output.sbdf") |
| 427 | + self.assertEqual(len(df2), 1) |
| 428 | + self.assertEqual(len(df2.columns), 1) |
| 429 | + self.assertEqual(df2.columns[0], 'x') |
| 430 | + val = df2.at[0, "x"] |
| 431 | + self.assertEqual(val[0:8], b'\x89PNG\x0d\x0a\x1a\x0a') |
| 432 | + |
| 433 | + def test_image_seaborn(self): |
| 434 | + """Verify Seaborn grids export properly""" |
| 435 | + matplotlib.pyplot.clf() |
| 436 | + dataframe = pandas.DataFrame({'x': range(10), 'y': range(10, 0, -1)}) |
| 437 | + grid = seaborn.FacetGrid(dataframe) |
| 438 | + with tempfile.TemporaryDirectory() as tempdir: |
| 439 | + sbdf.export_data(grid, f"{tempdir}/output.sbdf") |
| 440 | + df2 = sbdf.import_data(f"{tempdir}/output.sbdf") |
| 441 | + self.assertEqual(len(df2), 1) |
| 442 | + self.assertEqual(len(df2.columns), 1) |
| 443 | + self.assertEqual(df2.columns[0], 'x') |
| 444 | + val = df2.at[0, "x"] |
| 445 | + self.assertEqual(val[0:8], b'\x89PNG\x0d\x0a\x1a\x0a') |
| 446 | + |
| 447 | + def test_image_pil(self): |
| 448 | + """Verify PIL images export properly""" |
| 449 | + image = PIL.Image.new("RGB", (100, 100)) |
| 450 | + with tempfile.TemporaryDirectory() as tempdir: |
| 451 | + sbdf.export_data(image, f"{tempdir}/output.sbdf") |
| 452 | + df2 = sbdf.import_data(f"{tempdir}/output.sbdf") |
| 453 | + val = df2.at[0, "x"] |
| 454 | + self.assertEqual(len(df2), 1) |
| 455 | + self.assertEqual(len(df2.columns), 1) |
| 456 | + self.assertEqual(df2.columns[0], 'x') |
| 457 | + val = df2.at[0, "x"] |
| 458 | + self.assertEqual(val[0:8], b'\x89PNG\x0d\x0a\x1a\x0a') |
0 commit comments