From 9f45f066ae18abe43eb9b80f213bd2decf55e29e Mon Sep 17 00:00:00 2001 From: Vindaar Date: Mon, 1 Jul 2024 19:42:53 +0200 Subject: [PATCH 1/3] [tests] fix test cases to pass with `-d:nimPreviewHashFarm` --- tests/testDf.nim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testDf.nim b/tests/testDf.nim index 9dc3233..7bd3b5f 100644 --- a/tests/testDf.nim +++ b/tests/testDf.nim @@ -1106,7 +1106,7 @@ SeptemLineReal true true 1 0.1368 0 let dfRes = df.spread("Fake", "FractionPass") check dfRes.len == 6 check dfRes.getKeys().len == 6 - check dfRes.getKeys() == dfExp.getKeys() + check dfRes.getKeys().sorted == dfExp.getKeys().sorted check equal(dfRes, dfExp) test "Pretty printing of DFs": @@ -1508,7 +1508,7 @@ t_in_s, C1_in_V, C2_in_V, type "Ids" : ids }) let dfRes = df1.innerJoin(df2, by = "Ident") check dfRes.len == dfExp.len - check dfRes.getKeys == dfExp.getKeys + check dfRes.getKeys.sorted == dfExp.getKeys.sorted check dfRes["Ident"].toTensor(string) == dfExp["Ident"].toTensor(string) check dfRes["Ids"].toTensor(int) == dfExp["Ids"].toTensor(int) check dfRes["Words"].toTensor(string) == dfExp["Words"].toTensor(string) @@ -1528,7 +1528,7 @@ t_in_s, C1_in_V, C2_in_V, type "Ids" : idsFloat }) let dfRes = df1.innerJoin(df2, by = "Ident") check dfRes.len == dfExp.len - check dfRes.getKeys == dfExp.getKeys + check dfRes.getKeys.sorted == dfExp.getKeys.sorted check dfRes["Ident"].toTensor(string) == dfExp["Ident"].toTensor(string) # result has enveloping column kind float check dfRes["Ids"].kind == colFloat @@ -1550,7 +1550,7 @@ t_in_s, C1_in_V, C2_in_V, type "Ids" : idsFloat }) let dfRes = df1.innerJoin(df2, by = "Ident") check dfRes.len == dfExp.len - check dfRes.getKeys == dfExp.getKeys + check dfRes.getKeys.sorted == dfExp.getKeys.sorted check dfRes["Ident"].toTensor(string) == dfExp["Ident"].toTensor(string) # result has enveloping column kind float check dfRes["Ids"].kind == colFloat From 4d100738e5371e36325a58345ee5b66f065cb604 Mon Sep 17 00:00:00 2001 From: Vindaar Date: Mon, 1 Jul 2024 19:44:43 +0200 Subject: [PATCH 2/3] [df] column order does not matter in `equal` DF comparison --- src/datamancer/dataframe.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/datamancer/dataframe.nim b/src/datamancer/dataframe.nim index f51f473..cdd8025 100644 --- a/src/datamancer/dataframe.nim +++ b/src/datamancer/dataframe.nim @@ -393,8 +393,8 @@ proc equal*[C: ColumnLike](df1, df2: DataTable[C]): bool = elif df1.kind != df2.kind: result = false elif df1.len != df2.len: result = false else: - let k1 = getKeys(df1) - let k2 = getKeys(df2) + let k1 = getKeys(df1).sorted + let k2 = getKeys(df2).sorted if k1 != k2: result = false else: result = true From 7fc266bd9e25a75100c20f9e707ce1bdd0aa32fd Mon Sep 17 00:00:00 2001 From: Vindaar Date: Mon, 1 Jul 2024 19:47:12 +0200 Subject: [PATCH 3/3] [nimble] run tests with farm hash for devel --- datamancer.nimble | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/datamancer.nimble b/datamancer.nimble index 790a199..7e8c3f0 100644 --- a/datamancer.nimble +++ b/datamancer.nimble @@ -21,6 +21,16 @@ task test, "Run standard tests": exec "nim c -r tests/testsFormula.nim" exec "nim c -r tests/testParse.nim" + # preview farm hash + if (NimMajor, NimMinor) >= (2, 1): + exec "nim c -r -d:nimPreviewHashFarm tests/testDf.nim" + exec "nim c -r -d:nimPreviewHashFarm tests/tests.nim" + exec "nim c -r -d:nimPreviewHashFarm tests/test_issue20.nim" + exec "nim c -r -d:nimPreviewHashFarm tests/test_issue28.nim" + exec "nim c -r -d:nimPreviewHashFarm tests/testsFormula.nim" + exec "nim c -r -d:nimPreviewHashFarm tests/testParse.nim" + + task testJs, "Run test for JS": exec "nim js -r tests/testdf_js_simple.nim"