aboutsummaryrefslogtreecommitdiff
path: root/src/tests.ts
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-12-10 16:15:00 +0530
committerAkshay Nair <phenax5@gmail.com>2023-12-10 16:32:23 +0530
commitf6e26212620de411e082cbd52379075ea5a99032 (patch)
treea7a68c681a3e99987f2bb02eebf51616f6a65067 /src/tests.ts
downloadts-theorem-provinator-f6e26212620de411e082cbd52379075ea5a99032.tar.gz
ts-theorem-provinator-f6e26212620de411e082cbd52379075ea5a99032.zip
init commit rewriting shit
Diffstat (limited to '')
-rw-r--r--src/tests.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/tests.ts b/src/tests.ts
new file mode 100644
index 0000000..8c379e8
--- /dev/null
+++ b/src/tests.ts
@@ -0,0 +1,39 @@
+import { Add, ApplyRewrite, Commutativity, Flip, Identity } from './index';
+
+type Eq<a, b> = ([a] extends [b] ? ([b] extends [a] ? true : false) : false) & { a: a; b: b };
+type assert<T extends true> = T;
+
+export type _testCases = {
+ Identity: [
+ assert<Eq<
+ ApplyRewrite<Add<'A', Add<'B', '0'>>, Identity<'B'>>,
+ Add<'A', 'B'>
+ >>,
+ assert<Eq<
+ ApplyRewrite<Add<Add<'A', 'B'>, '0'>, Identity<Add<'A', 'B'>>>,
+ Add<'A', 'B'>
+ >>,
+ assert<Eq<
+ ApplyRewrite<Add<'A', 'B'>, Flip<Identity<Add<'A', 'B'>>>>,
+ Add<Add<'A', 'B'>, '0'>
+ >>,
+ assert<Eq<
+ ApplyRewrite<Add<'A', Add<'B', Add<'C', '0'>>>, Identity<'C'>>,
+ Add<'A', Add<'B', 'C'>>
+ >>,
+ ],
+ Commutativity: [
+ assert<Eq<
+ ApplyRewrite<Add<'A', 'B'>, Commutativity<'A', 'B'>>,
+ Add<'B', 'A'>
+ >>,
+ assert<Eq<
+ ApplyRewrite<Add<Add<'A', 'B'>, 'C'>, Commutativity<'A', 'B'>>,
+ Add<Add<'B', 'A'>, 'C'>
+ >>,
+ assert<Eq<
+ ApplyRewrite<Add<'A', Add<'B', 'C'>>, Commutativity<'B', 'C'>>,
+ Add<'A', Add<'C', 'B'>>
+ >>,
+ ],
+};