about summary refs log tree commit diff stats
path: root/js/scripting-lang/tests/11_edge_cases.txt
diff options
context:
space:
mode:
Diffstat (limited to 'js/scripting-lang/tests/11_edge_cases.txt')
-rw-r--r--js/scripting-lang/tests/11_edge_cases.txt50
1 files changed, 50 insertions, 0 deletions
diff --git a/js/scripting-lang/tests/11_edge_cases.txt b/js/scripting-lang/tests/11_edge_cases.txt
new file mode 100644
index 0000000..ceb39b4
--- /dev/null
+++ b/js/scripting-lang/tests/11_edge_cases.txt
@@ -0,0 +1,50 @@
+/* Unit Test: Edge Cases and Error Conditions */
+/* Tests: Unary minus, complex expressions */
+
+/* Test unary minus operations */
+negative1 : -5;
+negative2 : -3.14;
+negative3 : -0;
+
+..assert negative1 = -5;
+..assert negative2 = -3.14;
+..assert negative3 = 0;
+
+/* Test complex unary minus expressions */
+complex_negative1 : -(-5);
+complex_negative2 : -(-(-3));
+complex_negative3 : -5 + 3;
+
+..assert complex_negative1 = 5;
+..assert complex_negative2 = -3;
+..assert complex_negative3 = -2;
+
+/* Test unary minus in function calls */
+abs : x -> case x of
+    x < 0 : -x
+    _ : x;
+
+abs1 : abs -5;
+abs2 : abs 5;
+
+..assert abs1 = 5;
+..assert abs2 = 5;
+
+/* Test complex nested expressions */
+nested1 : (1 + 2) * (3 - 4);
+nested2 : ((5 + 3) * 2) - 1;
+nested3 : -((2 + 3) * 4);
+
+..assert nested1 = -3;
+..assert nested2 = 15;
+..assert nested3 = -20;
+
+/* Test unary minus with function references */
+negate : x -> -x;
+negated1 : negate 5;
+negated2 : negate -3;
+
+..assert negated1 = -5;
+..assert negated2 = 3;
+
+..out "Edge cases test completed"; 
\ No newline at end of file