/* LICENSE BEGIN This file is part of the SixtyFPS Project -- https://sixtyfps.io Copyright (c) 2021 Olivier Goffart Copyright (c) 2021 Simon Hausmann 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 a; property t1: 4 + 3 * 2 + 2 - 50 - 2; property t2: 500 / 2 * 30 - 1; property t3: a - (3 + ++2 * (a + 2)); property t4: 3 + - +5 - 8 - -9 * --- 120; property len: 50px / 2; callback foo; foo => { a += +8; a *= 10; a /= 2; a -= 3; len += 1px; len /= 2; len -= 3px; len *= 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); assert_eq(instance.get_len(), ((25.+1.)/2. - 3.) * 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); assert_eq!(instance.get_len(), ((25.+1.)/2. - 3.) * 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); assert.equal(instance.len, ((25.+1.)/2. - 3.) * 3.); ``` */