about summary refs log tree commit diff stats
path: root/js/scripting-lang/scratch_tests/test_precedence_comprehensive.txt
diff options
context:
space:
mode:
Diffstat (limited to 'js/scripting-lang/scratch_tests/test_precedence_comprehensive.txt')
-rw-r--r--js/scripting-lang/scratch_tests/test_precedence_comprehensive.txt129
1 files changed, 129 insertions, 0 deletions
diff --git a/js/scripting-lang/scratch_tests/test_precedence_comprehensive.txt b/js/scripting-lang/scratch_tests/test_precedence_comprehensive.txt
new file mode 100644
index 0000000..29f1420
--- /dev/null
+++ b/js/scripting-lang/scratch_tests/test_precedence_comprehensive.txt
@@ -0,0 +1,129 @@
+/* Comprehensive Precedence Test Cases */
+
+/* Setup variables */
+x : 5;
+y : 3;
+z : 2;
+
+/* Setup functions */
+f : x -> x * 2;
+g : x -> x + 1;
+h : x -> x * x;
+
+/* 1. Basic Arithmetic Operations */
+result1 : x + y;
+result2 : x - y;
+result3 : x * y;
+result4 : x / y;
+result5 : x % y;
+result6 : x ^ z;
+
+..out "=== Basic Arithmetic ===";
+..out result1;
+..out result2;
+..out result3;
+..out result4;
+..out result5;
+..out result6;
+
+/* 2. Unary Operations */
+result7 : -x;
+result8 : not true;
+
+..out "=== Unary Operations ===";
+..out result7;
+..out result8;
+
+/* 3. Mixed Unary and Binary Operations */
+result9 : x * -y;
+result10 : -x + y;
+result11 : x - -y;
+result12 : -x * -y;
+
+..out "=== Mixed Operations ===";
+..out result9;
+..out result10;
+..out result11;
+..out result12;
+
+/* 4. Function Application */
+result13 : f 5;
+result14 : f g 5;
+result15 : f (g 5);
+
+..out "=== Function Application ===";
+..out result13;
+..out result14;
+..out result15;
+
+/* 5. Function Composition */
+result16 : f via g 5;
+result17 : f via g via h 3;
+result18 : pipe(f, g) 5;
+result19 : compose(f, g) 5;
+
+..out "=== Function Composition ===";
+..out result16;
+..out result17;
+..out result18;
+..out result19;
+
+/* 6. Comparison Operations */
+result20 : x = y;
+result21 : x != y;
+result22 : x < y;
+result23 : x > y;
+result24 : x <= y;
+result25 : x >= y;
+
+..out "=== Comparison Operations ===";
+..out result20;
+..out result21;
+..out result22;
+..out result23;
+..out result24;
+..out result25;
+
+/* 7. Logical Operations */
+a : true;
+b : false;
+result26 : a and b;
+result27 : a or b;
+result28 : a xor b;
+result29 : not a;
+
+..out "=== Logical Operations ===";
+..out result26;
+..out result27;
+..out result28;
+..out result29;
+
+/* 8. Complex Expressions */
+result30 : x + y * z;
+result31 : (x + y) * z;
+result32 : x - y + z;
+result33 : x * -y + z;
+result34 : f x + g y;
+
+..out "=== Complex Expressions ===";
+..out result30;
+..out result31;
+..out result32;
+..out result33;
+..out result34;
+
+/* 9. Edge Cases */
+result35 : -5;
+result36 : 5 - 3;
+result37 : f -5;
+result38 : f 5 - 3;
+result39 : f (5 - 3);
+
+..out "=== Edge Cases ===";
+..out result35;
+..out result36;
+..out result37;
+..out result38;
+..out result39;
+
+..out "=== Test Complete ==="; 
\ No newline at end of file