slint/tests/cases/expr/arithmetic.60
2021-03-15 17:01:05 +01:00

60 lines
1.8 KiB
Text

/* LICENSE BEGIN
This file is part of the SixtyFPS Project -- https://sixtyfps.io
Copyright (c) 2020 Olivier Goffart <olivier.goffart@sixtyfps.io>
Copyright (c) 2020 Simon Hausmann <simon.hausmann@sixtyfps.io>
SPDX-License-Identifier: GPL-3.0-only
This file is also available under commercial licensing terms.
Please contact info@sixtyfps.io for more information.
LICENSE END */
TestCase := Rectangle {
property<int> a;
property<int> t1: 4 + 3 * 2 + 2 - 50 - 2;
property<int> t2: 500 / 2 * 30 - 1;
property<int> t3: a - (3 + 2 * (a + 2));
property<int> t4: 3 + - 5 - 8 - -9 * --- 120;
callback foo;
foo => {
a += 8;
a *= 10;
a /= 2;
a -= 3;
}
}
/*
```cpp
auto handle = TestCase::create();
const TestCase &instance = *handle;
assert_eq(instance.get_t1(), 4 + 3 * 2 + 2 - 50 - 2);
assert_eq(instance.get_t2(), 500 / 2 * 30 - 1);
instance.set_a(42);
assert_eq(instance.get_t3(), 42 - (3 + 2 * (42 + 2)));
assert_eq(instance.get_t4(), 3 + - 5 - 8 - -9 * - - - 120);
instance.invoke_foo();
assert_eq(instance.get_a(), (((42 + 8) * 10) / 2) - 3);
```
```rust
let instance = TestCase::new();
assert_eq!(instance.get_t1(), 4 + 3 * 2 + 2 - 50 - 2);
assert_eq!(instance.get_t2(), 500 / 2 * 30 - 1);
instance.set_a(42);
assert_eq!(instance.get_t3(), 42 - (3 + 2 * (42 + 2)));
assert_eq!(instance.get_t4(), 3 + - 5 - 8 - -9 * --- 120);
instance.invoke_foo();
assert_eq!(instance.get_a(), (((42 + 8) * 10) / 2) - 3);
```
```js
var instance = new sixtyfps.TestCase({});
assert.equal(instance.t1, 4 + 3 * 2 + 2 - 50 - 2);
assert.equal(instance.t2, 500 / 2 * 30 - 1);
instance.a = 42;
assert.equal(instance.t3, 42 - (3 + 2 * (42 + 2)));
assert.equal(instance.t4, 3 + - 5 - 8 - -9 * - - - 120);
instance.foo();
assert.equal(instance.a, (((42 + 8) * 10) / 2) - 3);
```
*/