diff options
Diffstat (limited to 'js/scripting-lang/scratch_tests/test_table_enhancements_comprehensive.txt')
-rw-r--r-- | js/scripting-lang/scratch_tests/test_table_enhancements_comprehensive.txt | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/js/scripting-lang/scratch_tests/test_table_enhancements_comprehensive.txt b/js/scripting-lang/scratch_tests/test_table_enhancements_comprehensive.txt new file mode 100644 index 0000000..1464224 --- /dev/null +++ b/js/scripting-lang/scratch_tests/test_table_enhancements_comprehensive.txt @@ -0,0 +1,90 @@ +/* Comprehensive test for table enhancements */ + +/* Basic table creation */ +numbers : {1, 2, 3, 4, 5}; +person : {name: "Alice", age: 30, active: true}; + +/* Test enhanced map */ +double : x -> x * 2; +doubled : map @double numbers; + +/* Test enhanced filter */ +isEven : x -> x % 2 == 0; +even_numbers : filter @isEven numbers; + +/* Test enhanced reduce */ +sum : x y -> x + y; +total : reduce @sum 0 numbers; + +/* Test t.map */ +t_doubled : t.map @double numbers; + +/* Test t.filter */ +t_even_numbers : t.filter @isEven numbers; + +/* Test t.reduce */ +t_total : t.reduce @sum 0 numbers; + +/* Test t.set */ +updated_person : t.set person "age" 31; + +/* Test t.delete */ +without_age : t.delete person "age"; + +/* Test t.merge */ +merged : t.merge person {city: "New York", country: "USA"}; + +/* Test t.pairs, t.keys, t.values, t.length */ +all_pairs : t.pairs person; +all_keys : t.keys person; +all_values : t.values person; +table_size : t.length person; + +/* Test t.has and t.get */ +has_name : t.has person "name"; +has_email : t.has person "email"; +age_or_default : t.get person "age" 0; +email_or_default : t.get person "email" "unknown"; + +/* Test function composition with tables */ +transform : compose @t.map @double @t.filter @isEven; +transformed : transform numbers; + +/* Output results */ +..out "=== COMPREHENSIVE TABLE ENHANCEMENTS ==="; +..out "Enhanced map:"; +..out doubled; +..out "Enhanced filter:"; +..out even_numbers; +..out "Enhanced reduce:"; +..out total; +..out "t.map:"; +..out t_doubled; +..out "t.filter:"; +..out t_even_numbers; +..out "t.reduce:"; +..out t_total; +..out "t.set:"; +..out updated_person; +..out "t.delete:"; +..out without_age; +..out "t.merge:"; +..out merged; +..out "t.pairs:"; +..out all_pairs; +..out "t.keys:"; +..out all_keys; +..out "t.values:"; +..out all_values; +..out "t.length:"; +..out table_size; +..out "t.has name:"; +..out has_name; +..out "t.has email:"; +..out has_email; +..out "t.get age:"; +..out age_or_default; +..out "t.get email:"; +..out email_or_default; +..out "Function composition:"; +..out transformed; \ No newline at end of file |