about summary refs log tree commit diff stats
path: root/js/scripting-lang/tests
diff options
context:
space:
mode:
Diffstat (limited to 'js/scripting-lang/tests')
-rw-r--r--js/scripting-lang/tests/16_function_composition.txt59
1 files changed, 59 insertions, 0 deletions
diff --git a/js/scripting-lang/tests/16_function_composition.txt b/js/scripting-lang/tests/16_function_composition.txt
new file mode 100644
index 0000000..cac7ddd
--- /dev/null
+++ b/js/scripting-lang/tests/16_function_composition.txt
@@ -0,0 +1,59 @@
+/* Function Composition Test Suite */
+
+/* Test basic function definitions */
+double : x -> x * 2;
+add1 : x -> x + 1;
+square : x -> x * x;
+
+/* Test 1: Basic composition with via */
+result1 : double via add1 5;
+..out result1;
+
+/* Test 2: Multiple composition with via */
+result2 : double via add1 via square 3;
+..out result2;
+
+/* Test 3: Function references */
+ref1 : @double;
+..out ref1;
+
+/* Test 4: Function references in composition */
+result3 : @double via @add1 5;
+..out result3;
+
+/* Test 5: Pipe function (binary) */
+result4 : pipe double add1 5;
+..out result4;
+
+/* Test 6: Compose function (binary) */
+result5 : compose double add1 2;
+..out result5;
+
+/* Test 7: Multiple composition with via */
+result6 : square via add1 via double 2;
+..out result6;
+
+/* Test 8: Backward compatibility - arithmetic */
+x : 10;
+result7 : x + 5;
+..out result7;
+
+/* Test 9: Backward compatibility - function application */
+result8 : double x;
+..out result8;
+
+/* Test 10: Backward compatibility - nested application */
+result9 : double (add1 x);
+..out result9;
+
+/* Test 11: Backward compatibility - unary operators */
+result10 : -x;
+..out result10;
+
+/* Test 12: Backward compatibility - logical operators */
+result11 : not true;
+..out result11;
+
+/* Test 13: Complex composition chain */
+result12 : square via add1 via double via add1 3;
+..out result12; 
\ No newline at end of file