about summary refs log tree commit diff stats
path: root/js/scripting-lang/scratch_tests/test_table_enhancements_final.txt
blob: 79ae100f52fc35228ad2463f957eb960802ed28d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* Final 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";

/* Output results */
..out "=== FINAL 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;