diff options
Diffstat (limited to 'js/scripting-lang/tests/17_table_enhancements_step1.txt')
-rw-r--r-- | js/scripting-lang/tests/17_table_enhancements_step1.txt | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/js/scripting-lang/tests/17_table_enhancements_step1.txt b/js/scripting-lang/tests/17_table_enhancements_step1.txt new file mode 100644 index 0000000..79dae16 --- /dev/null +++ b/js/scripting-lang/tests/17_table_enhancements_step1.txt @@ -0,0 +1,41 @@ +/* Step 1: Enhanced map with tables */ + +numbers : {1, 2, 3, 4, 5}; +double : x -> x * 2; + +/* Test map with single table */ +doubled : map @double numbers; +first : doubled[1]; +second : doubled[2]; +third : doubled[3]; +fourth : doubled[4]; +fifth : doubled[5]; +..assert first = 2; +..assert second = 4; +..assert third = 6; +..assert fourth = 8; +..assert fifth = 10; + +/* Test map with key-value table */ +person : {name: "Alice", age: 30, active: true}; +add_ten : x -> x + 10; + +mapped_person : map @add_ten person; +/* Note: This will add 10 to all values, including strings */ +name_result : mapped_person.name; +age_result : mapped_person.age; +active_result : mapped_person.active; +..assert name_result = "Alice10"; +..assert age_result = 40; +..assert active_result = 11; + +/* Enhanced filter with tables */ +is_even : x -> x % 2 = 0; +evens : filter @is_even numbers; +even_2 : evens[2]; +even_4 : evens[4]; +/* Note: Keys 1, 3, 5 don't exist in filtered result */ +..assert even_2 = 2; +..assert even_4 = 4; + +..out "Step 3 completed"; \ No newline at end of file |