Skip to content

Commit a25597b

Browse files
committed
Issue #761 better diff for apex reference check (added ascii art diff)
1 parent e723729 commit a25597b

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

openeo/testing/results.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,27 @@ def _as_xarray_dataarray(data: Union[str, Path, xarray.DataArray]) -> xarray.Dat
9090
return data
9191

9292

93+
def ascii_art(diff_data: DataArray) -> str:
94+
scale: int = max(1, (diff_data.sizes["x"] / 100))
95+
data_max = diff_data.max().item()
96+
if data_max == 0:
97+
data_max = 1
98+
grayscale_characters = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. "
99+
coarsened = diff_data.coarsen(dim={"x": scale, "y": scale}, boundary="pad").all()
100+
top = "┌" + "─" * coarsened.sizes["x"] + "┐\n"
101+
bottom = "\n└" + "─" * coarsened.sizes["x"] + "┘"
102+
return (
103+
top
104+
+ "\n".join(
105+
[
106+
"│" + "".join([grayscale_characters[70 - int(v * 70 / data_max)] for v in row]) + "│"
107+
for row in coarsened.transpose()
108+
]
109+
)
110+
+ bottom
111+
)
112+
113+
93114
def _compare_xarray_dataarray_xy(
94115
actual: Union[xarray.DataArray, str, Path],
95116
expected: Union[xarray.DataArray, str, Path],
@@ -155,6 +176,9 @@ def _compare_xarray_dataarray_xy(
155176
f"{key}: value difference min:{diff_data.min().data}, max: {diff_data.max().data}, mean: {diff_mean}, var: {diff_var}"
156177
)
157178

179+
print(f"Difference ascii art for {key}")
180+
print(ascii_art(diff_data))
181+
158182
coord_grid = np.meshgrid(diff_data.coords["y"], diff_data.coords["x"])
159183
mask = diff_data.notnull()
160184
c1 = coord_grid[0][mask]

0 commit comments

Comments
 (0)