1// Copyright © SixtyFPS GmbH <info@slint.dev>
2// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
4 TestCase := Rectangle {
5 property<int> a;
6 property<int> t1: 4 + 3 * 2 + 2 - 50 - 2;
7 property<int> t2: 500 / 2 * 30 - 1;
8 property<int> t3: a - (3 + ++2 * (a + 2));
9 property<int> t4: 3 + - +5 - 8 - -9 * --- 120;
10
11 property <length> len: 50px / 2;
12
13 callback foo;
14 foo => {
15 a += +8;
16 a *= 10;
17 a /= 2;
18 a -= 3;
19
20 len += 1px;
21 len /= 2;
22 len -= 3px;
23 len *= 3;
24 }
25}
26/*
27```cpp
28auto handle = TestCase::create();
29const TestCase &instance = *handle;
30assert_eq(instance.get_t1(), 4 + 3 * 2 + 2 - 50 - 2);
31assert_eq(instance.get_t2(), 500 / 2 * 30 - 1);
32instance.set_a(42);
33assert_eq(instance.get_t3(), 42 - (3 + 2 * (42 + 2)));
34assert_eq(instance.get_t4(), 3 + - 5 - 8 - -9 * - - - 120);
35instance.invoke_foo();
36assert_eq(instance.get_a(), (((42 + 8) * 10) / 2) - 3);
37
38assert_eq(instance.get_len(), ((25.+1.)/2. - 3.) * 3.);
39```
40
41
42```rust
43let instance = TestCase::new().unwrap();
44assert_eq!(instance.get_t1(), 4 + 3 * 2 + 2 - 50 - 2);
45assert_eq!(instance.get_t2(), 500 / 2 * 30 - 1);
46instance.set_a(42);
47assert_eq!(instance.get_t3(), 42 - (3 + 2 * (42 + 2)));
48assert_eq!(instance.get_t4(), 3 + - 5 - 8 - -9 * -(-(-120)));
49instance.invoke_foo();
50assert_eq!(instance.get_a(), (((42 + 8) * 10) / 2) - 3);
51
52assert_eq!(instance.get_len(), ((25.+1.)/2. - 3.) * 3.);
53```
54
55```js
56var instance = new slint.TestCase({});
57assert.equal(instance.t1, 4 + 3 * 2 + 2 - 50 - 2);
58assert.equal(instance.t2, 500 / 2 * 30 - 1);
59instance.a = 42;
60assert.equal(instance.t3, 42 - (3 + 2 * (42 + 2)));
61assert.equal(instance.t4, 3 + - 5 - 8 - -9 * - - - 120);
62instance.foo();
63assert.equal(instance.a, (((42 + 8) * 10) / 2) - 3);
64
65assert.equal(instance.len, ((25.+1.)/2. - 3.) * 3.);
66```
67*/
68