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
4export component TestCase {
5 in property <float> value: 42.0;
6 out property <float> t1: clamp(value, 10.0, 53.0);
7 out property <float> t2: clamp(value, 43.0, 53.0);
8 out property <float> t3: clamp(value, 10.0, 41.0);
9 out property <float> s1: value.clamp(10.0, 53.0);
10 out property <float> s2: value.clamp(43.0, 53.0);
11 out property <float> s3: value.clamp(10.0, 41.0);
12
13
14 r := Rectangle {
15 property <int> max: 42;
16 property <int> xx: Math.clamp(5, 2, 3) + max;
17 }
18
19 out property <duration> dur: 45ms.clamp(0, 50ms);
20 out property<bool> test_dur: dur == 5ms.clamp(45ms, 50ms);
21
22 out property <bool> test: root.t1 == 42.0 && root.t2 == 43.0 && root.t3 == 41.0 && r.xx == 42 + 3 && root.s1 == 42.0 && root.s2 == 43.0 && root.s3 == 41.0 && test_dur;
23}
24/*
25```cpp
26auto handle = TestCase::create();
27const TestCase &instance = *handle;
28assert_eq(instance.get_t1(), 42.0);
29assert_eq(instance.get_t2(), 43.0);
30assert_eq(instance.get_t3(), 41.0);
31assert_eq(instance.get_test(), true);
32```
33
34
35```rust
36let instance = TestCase::new().unwrap();
37assert_eq!(instance.get_t1(), 42.0);
38assert_eq!(instance.get_t2(), 43.0);
39assert_eq!(instance.get_t3(), 41.0);
40assert_eq!(instance.get_test(), true);
41```
42
43```js
44var instance = new slint.TestCase({});
45assert.equal(instance.t1, 42.0);
46assert.equal(instance.t2, 43.0);
47assert.equal(instance.t3, 41.0);
48assert(instance.test);
49```
50*/
51