Skip to content

Commit 52c6e9a

Browse files
committed
check historical
1 parent 5df0ddc commit 52c6e9a

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

CHANGELOGS.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Change Logs
44
0.7.1
55
+++++
66

7+
* :pr:`155`: better aggregation of historical data
78
* :pr:`151`, :pr:`153`: adds command line ``agg``, class CubeLogsPerformance to produce timeseries
89
* :pr:`152`: add a function to compute fully dynamic shapes given any inputs
910

_unittests/ut_helpers/test_log_helper.py

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import textwrap
44
import unittest
55
import zipfile
6+
import numpy as np
67
import pandas
78
from onnx_diagnostic.ext_test_case import ExtTestCase, hide_stdout
89
from onnx_diagnostic.helpers.log_helper import (
@@ -46,7 +47,6 @@ def test_cube_logs_load_df(self):
4647
cube = CubeLogs(df)
4748
text = str(cube)
4849
self.assertIsInstance(text, str)
49-
self.assertRaise(lambda: cube.load(verbose=1), AssertionError)
5050
cube = CubeLogs(
5151
self.df1(),
5252
recent=True,
@@ -229,6 +229,55 @@ def test_cube_logs_performance(self):
229229
)
230230
self.assertExists(output)
231231

232+
def test_duplicate(self):
233+
df = pandas.DataFrame(
234+
[
235+
dict(date="2025/01/01", time_engine=0.5, model_name="A", version_engine="0.5"),
236+
dict(date="2025/01/01", time_engine=0.5, model_name="A", version_engine="0.5"),
237+
]
238+
)
239+
cube = CubeLogs(df)
240+
self.assertRaise(lambda: cube.load(), AssertionError)
241+
CubeLogs(df, recent=True).load()
242+
243+
def test_historical(self):
244+
# case 1
245+
df = pandas.DataFrame(
246+
[
247+
dict(date="2025/01/01", time_p=0.51, exporter="E1", m_name="A", m_cls="CA"),
248+
dict(date="2025/01/02", time_p=0.62, exporter="E1", m_name="A", m_cls="CA"),
249+
dict(date="2025/01/01", time_p=0.53, exporter="E2", m_name="A", m_cls="CA"),
250+
dict(date="2025/01/02", time_p=0.64, exporter="E2", m_name="A", m_cls="CA"),
251+
dict(date="2025/01/01", time_p=0.55, exporter="E2", m_name="B", m_cls="CA"),
252+
dict(date="2025/01/02", time_p=0.66, exporter="E2", m_name="B", m_cls="CA"),
253+
]
254+
)
255+
cube = CubeLogs(df, keys=["^m_*", "exporter"]).load()
256+
view, view_def = cube.view(CubeViewDef(["^m_.*"], ["^time_.*"]), return_view_def=True)
257+
self.assertEqual(
258+
"CubeViewDef(key_index=['^m_.*'], values=['^time_.*'])", repr(view_def)
259+
)
260+
self.assertEqual(["METRICS", "exporter", "date"], view.columns.names)
261+
got = view.values.ravel()
262+
self.assertEqual(
263+
sorted([0.51, 0.62, 0.53, 0.64, -1, -1, 0.55, 0.66]),
264+
sorted(np.where(np.isnan(got), -1, got).tolist()),
265+
)
266+
267+
# case 2
268+
df = pandas.DataFrame(
269+
[
270+
dict(date="2025/01/02", time_p=0.62, exporter="E1", m_name="A", m_cls="CA"),
271+
dict(date="2025/01/02", time_p=0.64, exporter="E2", m_name="A", m_cls="CA"),
272+
dict(date="2025/01/01", time_p=0.51, exporter="E1", m_name="B", m_cls="CA"),
273+
dict(date="2025/01/02", time_p=0.66, exporter="E2", m_name="B", m_cls="CA"),
274+
]
275+
)
276+
cube = CubeLogs(df, keys=["^m_*", "exporter"]).load()
277+
view, view_def = cube.view(CubeViewDef(["^m_.*"], ["^time_.*"]), return_view_def=True)
278+
self.assertEqual((2, 3), view.shape)
279+
self.assertEqual(["METRICS", "exporter", "date"], view.columns.names)
280+
232281

233282
if __name__ == "__main__":
234283
unittest.main(verbosity=2)

onnx_diagnostic/helpers/log_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ def view(
573573
)
574574
else:
575575
if verbose:
576-
print("[CubeLogs.view] keep all colums")
576+
print("[CubeLogs.view] keep all columns")
577577
key_columns = sorted(set_key_columns)
578578
unique = set()
579579

0 commit comments

Comments
 (0)