summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-01-18 11:13:09 +0000
committerArne Juul <arnej@verizonmedia.com>2021-01-18 14:22:11 +0000
commit0d4ba8f7fa4585955cbdbaa29f90158ba075c710 (patch)
tree15561dc4067fa7a7b46477bc3d80e934b51c10e5 /eval
parent46fa3514c7149a59b9bbbb633632c29ff4d0f3f6 (diff)
add more unit tests
Diffstat (limited to 'eval')
-rw-r--r--eval/src/tests/instruction/fast_rename_optimizer/fast_rename_optimizer_test.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/eval/src/tests/instruction/fast_rename_optimizer/fast_rename_optimizer_test.cpp b/eval/src/tests/instruction/fast_rename_optimizer/fast_rename_optimizer_test.cpp
index 4d95c1869a2..dc90a5e54a1 100644
--- a/eval/src/tests/instruction/fast_rename_optimizer/fast_rename_optimizer_test.cpp
+++ b/eval/src/tests/instruction/fast_rename_optimizer/fast_rename_optimizer_test.cpp
@@ -23,6 +23,8 @@ EvalFixture::ParamRepo make_params() {
.add("x5f", spec(float_cells({x(5)}), N()))
.add("x_m", spec({x({"a", "b", "c"})}, N()))
.add("xy_mm", spec({x({"a", "b", "c"}),y({"d","e"})}, N()))
+ .add("x5y3z_m", spec({x(5),y(3),z({"a","b"})}, N()))
+ .add("x5yz_m", spec({x(5),y({"a","b"}),z({"d","e"})}, N()))
.add("x5y3", spec({x(5),y(3)}, N()));
}
EvalFixture::ParamRepo param_repo = make_params();
@@ -66,6 +68,19 @@ TEST("require that non-dense renames may be optimized") {
TEST_DO(verify_optimized("rename(xy_mm,(x,y),(y,z))"));
TEST_DO(verify_not_optimized("rename(xy_mm,(x,y),(b,a))"));
TEST_DO(verify_not_optimized("rename(xy_mm,(x,y),(y,x))"));
+
+ TEST_DO(verify_optimized("rename(x5y3z_m,(z),(a))"));
+ TEST_DO(verify_optimized("rename(x5y3z_m,(x,y,z),(b,c,a))"));
+ TEST_DO(verify_optimized("rename(x5y3z_m,(z),(a))"));
+ TEST_DO(verify_optimized("rename(x5y3z_m,(x,y,z),(b,c,a))"));
+ TEST_DO(verify_not_optimized("rename(x5y3z_m,(y),(a))"));
+ TEST_DO(verify_not_optimized("rename(x5y3z_m,(x,z),(z,x))"));
+
+ TEST_DO(verify_optimized("rename(x5yz_m,(x,y),(y,x))"));
+ TEST_DO(verify_optimized("rename(x5yz_m,(x,y,z),(c,a,b))"));
+ TEST_DO(verify_optimized("rename(x5yz_m,(y,z),(a,b))"));
+ TEST_DO(verify_not_optimized("rename(x5yz_m,(z),(a))"));
+ TEST_DO(verify_not_optimized("rename(x5yz_m,(y,z),(z,y))"));
}
TEST("require that chained optimized renames are compacted into a single operation") {