diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq.params.yaml b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq.params.yaml deleted file mode 100644 index 97dce977f2114bd19936af18648df2bdff130769..0000000000000000000000000000000000000000 --- a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq.params.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (c) 2021-2025 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -cases: - # primitives equal - - { c1: "c'\\u0000'", c2: "c'\\x00'", op: "==" } - - { c1: "c'\\r'", c2: "c'\\u000D'", op: "==" } - - { c1: "c'ㇰ'", c2: "c'\\u31f0'", op: "==" } - - # with boxed char equal - - { c1: "c'\\u22ff'", c2: "new Char(c1)", op: "==" } - - { c1: "new Char(c'A')", c2: "c'A'", op: "==" } - - { c1: "c'∓'", c2: "new Char(c'\\u2213')", op: "==" } - - # primitives not equal - - { c1: "c'A'", c2: "c'А'", op: "!=" } - - { c1: "c'-'", c2: "new Char(c'−')", op: "!=" } - - # with boxed char not equal - - { c1: "new Char(c'E')", c2: "c'Е'", op: "!=" } - - { c1: "c'\\x20'", c2: "new Char(c'_')", op: "!=" } - - # primitives equal - - { c1: "c'\\u0000'", c2: "c'\\x00'", op: "===" } - - { c1: "c'\\r'", c2: "c'\\u000D'", op: "===" } - - { c1: "c'ㇰ'", c2: "c'\\u31f0'", op: "===" } - - # with boxed char equal - - { c1: "c'\\u22ff'", c2: "new Char(c1)", op: "===" } - - { c1: "new Char(c'A')", c2: "c'A'", op: "===" } - - { c1: "c'∓'", c2: "new Char(c'\\u2213')", op: "===" } - - # primitives not equal - - { c1: "c'A'", c2: "c'А'", op: "!=" } - - { c1: "c'-'", c2: "new Char(c'−')", op: "!==" } - - # with boxed char not equal - - { c1: "new Char(c'E')", c2: "c'Е'", op: "!==" } - - { c1: "c'\\x20'", c2: "new Char(c'_')", op: "!==" } \ No newline at end of file diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.ets b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.ets index 09fa15be5bbdaa649c2d32b754ab755051a85343..ab1f0c2cfcd8fe59104cf414d7676e3f9cdefa89 100644 --- a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.ets +++ b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.ets @@ -16,15 +16,13 @@ {% for c in cases %} /*--- desc: >- - The operation is a character equality if: both operands of a value equality operator are of type char; - or one operand is of type char and the other is of type Char. - The character equality operators are associative. + Negative tests for char tags: [compile-only, negative] ---*/ function main(): void { - let c1 = {{c.c1}} - let c2 = {{c.c2}} - arktest.assertTrue( c1 {{c.op}} c2 ) + let c1 = {{c.c1}}; + let c2 = {{c.c2}}; + let res = c1 {{c.op}} c2 } {% endfor %} diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.params.yaml b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.params.yaml index c354aa36e6f78163fec46a5b8ec72aaf40eb54a8..9b5accc0fc9f618135671ed9f74481831b51eda0 100644 --- a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.params.yaml +++ b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n.params.yaml @@ -27,5 +27,5 @@ cases: - { c1: "false", c2: "c'\\u000D'", op: "!==" } # char and Object - { c1: "c'ㇰ'", c2: "new Error()", op: "!==" } - # char and bigint - - { c1: "c'a'", c2: "97n", op: "!==" } \ No newline at end of file + # bigint and char + - { c1: "97n", c2: "c'a'", op: "!==" } \ No newline at end of file diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq.ets b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality.ets similarity index 58% rename from static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq.ets rename to static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality.ets index aa890b4d1beb626b9ae7aa86af2d7e916ea442ef..3b54ab9a61c9deb52ef2b0192f3e0ef186ccf8f3 100644 --- a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq.ets +++ b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2025 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,17 +13,21 @@ * limitations under the License. */ -{% for c in cases %} +{% for eq in numeric_eq %} + /*--- -desc: >- - The operation is a character equality if: both operands of a value equality operator are of type char; - or one operand is of type char and the other is of type Char. - The character equality operators are associative. +desc: Integer equality +params: {{eq.left}} {{eq.op}} {{eq.right}} is {{eq.result}} ---*/ function main(): void { - let c1 = {{c.c1}} - let c2 = {{c.c2}} - arktest.assertTrue( c1 {{c.op}} c2 && c2 {{c.op}} c1 ) // test associativity + let left: {{eq.left_type}} = {{eq.left}} + let right: {{eq.right_type}} = {{eq.right}} + arktest.assertEQ( + left {{eq.op}} right, + {{eq.result}}, + "Expected: {{eq.left}} {{eq.op}} {{eq.right}} is {{eq.result}}" + ) } + {% endfor %} diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality.params.yaml b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality.params.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b11fa8b287b56e6fcd34f756213bea95871c5e1b --- /dev/null +++ b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality.params.yaml @@ -0,0 +1,83 @@ +# Copyright (c) 2025 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- # List of pairwise test cases for equality operators on different numeric types +numeric_eq: + - {left: "11", left_type: "byte", right: "11", right_type: "byte", op: "==", result: "true"} + - {left: "23", left_type: "byte", right: "45", right_type: "short", op: "===", result: "false"} + - {left: "55", left_type: "byte", right: "12", right_type: "int", op: "!=", result: "true"} + - {left: "13", left_type: "byte", right: "24", right_type: "long", op: "!==", result: "true"} + - {left: "33", left_type: "byte", right: "33.0f", right_type: "float", op: "==", result: "true"} + - {left: "21", left_type: "byte", right: "21.0", right_type: "double", op: "==", result: "true"} + - {left: "127", left_type: "byte", right: "127n", right_type: "bigint", op: "==", result: "true"} + - {left: "-3", left_type: "short", right: "-3", right_type: "byte", op: "==", result: "true"} + - {left: "-1", left_type: "short", right: "1", right_type: "short", op: "===", result: "false"} + - {left: "127", left_type: "short", right: "128", right_type: "int", op: "!=", result: "true"} + - {left: "-128", left_type: "short", right: "-122", right_type: "long", op: "!==", result: "true"} + - {left: "1", left_type: "short", right: "1.0f", right_type: "float", op: "==", result: "true"} + - {left: "32767", left_type: "short", right: "32767.0", right_type: "double", op: "==", result: "true"} + - {left: "-32768", left_type: "short", right: "-32768n", right_type: "bigint", op: "==", result: "true"} + - {left: "13", left_type: "int", right: "13", right_type: "byte", op: "==", result: "true"} + - {left: "127", left_type: "int", right: "145", right_type: "short", op: "===", result: "false"} + - {left: "-1", left_type: "int", right: "1", right_type: "int", op: "!=", result: "true"} + - {left: "897", left_type: "int", right: "789", right_type: "long", op: "!==", result: "true"} + - {left: "1342", left_type: "int", right: "1342.0f", right_type: "float", op: "==", result: "true"} + - {left: "-9", left_type: "int", right: "-9.0", right_type: "double", op: "==", result: "true"} + - {left: "40000", left_type: "int", right: "40000n", right_type: "bigint", op: "==", result: "true"} + - {left: "1", left_type: "long", right: "1", right_type: "byte", op: "==", result: "true"} + - {left: "32768", left_type: "long", right: "-32768", right_type: "short", op: "===", result: "false"} + - {left: "2341", left_type: "long", right: "12311", right_type: "int", op: "!=", result: "true"} + - {left: "2", left_type: "long", right: "-2", right_type: "long", op: "!==", result: "true"} + - {left: "231", left_type: "long", right: "231.0f", right_type: "float", op: "==", result: "true"} + - {left: "-1", left_type: "long", right: "-1.0", right_type: "double", op: "==", result: "true"} + - {left: "213", left_type: "long", right: "213n", right_type: "bigint", op: "==", result: "true"} + - {left: "33.0f", left_type: "float", right: "33", right_type: "byte", op: "==", result: "true"} + - {left: "32766.9f", left_type: "float", right: "32767", right_type: "short", op: "===", result: "false"} + - {left: "11.9f", left_type: "float", right: "12", right_type: "int", op: "!=", result: "true"} + - {left: "-0.1f", left_type: "float", right: "0", right_type: "long", op: "!==", result: "true"} + - {left: "3.14159f", left_type: "float", right: "3.14159f", right_type: "float", op: "==", result: "true"} + - {left: "-3.0f", left_type: "float", right: "-3.0", right_type: "double", op: "==", result: "true"} + - {left: "14678.0f", left_type: "float", right: "14678n", right_type: "bigint", op: "==", result: "true"} + - {left: "127.0", left_type: "double", right: "127", right_type: "byte", op: "==", result: "true"} + - {left: "7.1", left_type: "double", right: "7", right_type: "short", op: "===", result: "false"} + - {left: "12321.1", left_type: "double", right: "12321", right_type: "int", op: "!=", result: "true"} + - {left: "9863.0", left_type: "double", right: "4", right_type: "long", op: "!==", result: "true"} + - {left: "11.0", left_type: "double", right: "11.0f", right_type: "float", op: "==", result: "true"} + - {left: "387.321", left_type: "double", right: "387.321", right_type: "double", op: "==", result: "true"} + - {left: "90.0", left_type: "double", right: "90n", right_type: "bigint", op: "==", result: "true"} + - {left: "1n", left_type: "bigint", right: "0b1", right_type: "byte", op: "==", result: "true"} + - {left: "1111n", left_type: "bigint", right: "1112", right_type: "short", op: "===", result: "false"} + - {left: "1111n", left_type: "bigint", right: "1112", right_type: "short", op: "==", result: "false"} + - {left: "-2147483648n", left_type: "bigint", right: "-2147483648", right_type: "int", op: "!=", result: "false"} + - {left: "2n", left_type: "bigint", right: "2", right_type: "long", op: "!==", result: "false"} + - {left: "36n", left_type: "bigint", right: "35.0f", right_type: "float", op: "===", result: "false"} + - {left: "24n", left_type: "bigint", right: "24.1", right_type: "double", op: "===", result: "false"} + - {left: "121n", left_type: "bigint", right: "212n", right_type: "bigint", op: "===", result: "false"} + - {left: "2", left_type: "byte", right: "1", right_type: "byte", op: "===", result: "false"} + - {left: "1", left_type: "byte", right: "2", right_type: "byte", op: "!=", result: "true"} + - {left: "-2", left_type: "byte", right: "-1", right_type: "byte", op: "!==", result: "true"} + - {left: "-34", left_type: "byte", right: "-34", right_type: "short", op: "==", result: "true"} + - {left: "3", left_type: "byte", right: "3", right_type: "short", op: "!=", result: "false"} + - {left: "11", left_type: "byte", right: "11", right_type: "short", op: "!==", result: "false"} + - {left: "0b1000011", left_type: "byte", right: "67", right_type: "int", op: "==", result: "true"} + - {left: "2", left_type: "byte", right: "1", right_type: "int", op: "===", result: "false"} + - {left: "88", left_type: "byte", right: "99", right_type: "int", op: "!==", result: "true"} + - {left: "2", left_type: "byte", right: "2", right_type: "long", op: "==", result: "true"} + - {left: "4", left_type: "byte", right: "4", right_type: "long", op: "===", result: "true"} + - {left: "100", left_type: "byte", right: "1000", right_type: "long", op: "!=", result: "true"} + - {left: "22", left_type: "byte", right: "23.0f", right_type: "float", op: "!=", result: "true"} + - {left: "33", left_type: "byte", right: "-33.0f", right_type: "float", op: "!==", result: "true"} + - {left: "1", left_type: "byte", right: "1.2", right_type: "double", op: "!=", result: "true"} + - {left: "24", left_type: "byte", right: "789.2", right_type: "double", op: "!==", result: "true"} + - {left: "1", left_type: "byte", right: "2n", right_type: "bigint", op: "!=", result: "true"} + - {left: "1", left_type: "byte", right: "2n", right_type: "bigint", op: "!==", result: "true"} diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.ets b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.ets index 73cf2d7f7d1585c37ceb13460b62c63060592fdb..dd8c498be836cf8363ad0176b82b42707c0ac4e2 100644 --- a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.ets +++ b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.ets @@ -16,14 +16,18 @@ {% for eq in numeric_eq %} /*--- -desc: Integer equality +desc: Integer and double infinity equality params: {{eq.left}} {{eq.op}} {{eq.right}} is {{eq.result}} ---*/ function main(): void { let left = {{eq.left}} let right = {{eq.right}} - arktest.assertEQ( (left {{eq.op}} right), {{eq.result}} ) + arktest.assertEQ( + left {{eq.op}} right, + {{eq.result}}, + "Expected: {{eq.left}} {{eq.op}} {{eq.right}} is {{eq.result}}" + ) } {% endfor %} diff --git a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.params.yaml b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.params.yaml index c0d33dc7d27a5575f258125bff5ac9f48908c4f3..076350ef6aa9394c1ca78ab4043fdf9728e0c709 100644 --- a/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.params.yaml +++ b/static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/01.numerical_equality_operators/numeric_equality.params.yaml @@ -11,7 +11,7 @@ # See the License for the specific language governing permissions and # limitations under the License. ---- # List of int equality operators +--- # List of int and double infinity equality operators numeric_eq: - {left: "5", right: "5", op: "==", result: "true"} - {left: "10", right: "5", op: "!=", result: "true"} @@ -21,14 +21,13 @@ numeric_eq: - {left: "0", right: "0.5", op: "!=", result: "true"} - {left: "0", right: "-0", op: "==", result: "true"} - - {left: "new Int(5)", right: "new Int(5)", op: "==", result: "true"} - - {left: "new Long(10)", right: "new Long(5)", op: "!=", result: "true"} - - {left: "new Short(5 as short)", right: "new Short(5 as short)", op: "!=", result: "false"} - - {left: "new Byte(10 as byte)", right: "new Byte(5 as byte)", op: "==", result: "false"} - - {left: "new Int(1)", right: "new Number(1.0)", op: "==", result: "true"} - - {left: "new Long()", right: "new Number(0.5)", op: "!=", result: "true"} - - {left: "new Byte()", right: "new Int(-0)", op: "==", result: "true"} - - {left: "new Int(20)", right: "new Int(20)", op: "===", result: "true"} + - {left: "5", right: "5", op: "===", result: "true"} + - {left: "10", right: "5", op: "!==", result: "true"} + - {left: "5", right: "5", op: "!==", result: "false"} + - {left: "10", right: "5", op: "===", result: "false"} + - {left: "1", right: "1.0", op: "===", result: "true"} + - {left: "0", right: "0.5", op: "!==", result: "true"} + - {left: "0", right: "-0", op: "===", result: "true"} - {left: "0.1", right: "Double.POSITIVE_INFINITY", op: "!=", result: "true"} - {left: "0.1", right: "Double.POSITIVE_INFINITY", op: "==", result: "false"} @@ -39,14 +38,14 @@ numeric_eq: - {left: "0.1", right: "Double.NEGATIVE_INFINITY", op: "!=", result: "true"} - {left: "0.1", right: "Double.NEGATIVE_INFINITY", op: "==", result: "false"} - - {left: "new Number(0.1)", right: "new Number(Double.POSITIVE_INFINITY)", op: "!=", result: "true"} - - {left: "new Number(0.1)", right: "new Number(Double.POSITIVE_INFINITY)", op: "==", result: "false"} - - {left: "new Number(Double.POSITIVE_INFINITY)", right: "new Number(0.1)", op: "!=", result: "true"} - - {left: "new Number(Double.POSITIVE_INFINITY)", right: "new Number(0.1)", op: "==", result: "false"} - - {left: "new Number(Double.NEGATIVE_INFINITY)", right: "new Number(0.1)", op: "!=", result: "true"} - - {left: "new Number(Double.NEGATIVE_INFINITY)", right: "new Number(0.1)", op: "==", result: "false"} - - {left: "new Number(0.1)", right: "new Number(Double.NEGATIVE_INFINITY)", op: "!=", result: "true"} - - {left: "new Number(0.1)", right: "new Number(Double.NEGATIVE_INFINITY)", op: "==", result: "false"} + - {left: "0.3", right: "Double.POSITIVE_INFINITY", op: "!==", result: "true"} + - {left: "0.3", right: "Double.POSITIVE_INFINITY", op: "===", result: "false"} + - {left: "Double.POSITIVE_INFINITY", right: "0.3", op: "!==", result: "true"} + - {left: "Double.POSITIVE_INFINITY", right: "0.3", op: "===", result: "false"} + - {left: "Double.NEGATIVE_INFINITY", right: "0.3", op: "!==", result: "true"} + - {left: "Double.NEGATIVE_INFINITY", right: "0.3", op: "===", result: "false"} + - {left: "0.3", right: "Double.NEGATIVE_INFINITY", op: "!==", result: "true"} + - {left: "0.3", right: "Double.NEGATIVE_INFINITY", op: "===", result: "false"} - {left: "Double.NEGATIVE_INFINITY", right: "Double.NEGATIVE_INFINITY", op: "==", result: "true"} - {left: "Double.NEGATIVE_INFINITY", right: "Double.NEGATIVE_INFINITY", op: "!=", result: "false"} @@ -55,22 +54,22 @@ numeric_eq: - {left: "Double.NEGATIVE_INFINITY", right: "Double.POSITIVE_INFINITY", op: "==", result: "false"} - {left: "Double.POSITIVE_INFINITY", right: "Double.NEGATIVE_INFINITY", op: "!=", result: "true"} - - {left: "new Number(Double.NEGATIVE_INFINITY)", right: "new Number(Double.NEGATIVE_INFINITY)", op: "==", result: "true"} - - {left: "new Number(Double.NEGATIVE_INFINITY)", right: "new Number(Double.NEGATIVE_INFINITY)", op: "!=", result: "false"} - - {left: "new Number(Double.POSITIVE_INFINITY)", right: "new Number(Double.POSITIVE_INFINITY)", op: "==", result: "true"} - - {left: "new Number(Double.POSITIVE_INFINITY)", right: "new Number(Double.POSITIVE_INFINITY)", op: "!=", result: "false"} - - {left: "new Number(Double.NEGATIVE_INFINITY)", right: "new Number(Double.POSITIVE_INFINITY)", op: "==", result: "false"} - - {left: "new Number(Double.POSITIVE_INFINITY)", right: "new Number(Double.NEGATIVE_INFINITY)", op: "!=", result: "true"} + - {left: "Double.NEGATIVE_INFINITY", right: "Double.NEGATIVE_INFINITY", op: "===", result: "true"} + - {left: "Double.NEGATIVE_INFINITY", right: "Double.NEGATIVE_INFINITY", op: "!==", result: "false"} + - {left: "Double.POSITIVE_INFINITY", right: "Double.POSITIVE_INFINITY", op: "===", result: "true"} + - {left: "Double.POSITIVE_INFINITY", right: "Double.POSITIVE_INFINITY", op: "!==", result: "false"} + - {left: "Double.NEGATIVE_INFINITY", right: "Double.POSITIVE_INFINITY", op: "===", result: "false"} + - {left: "Double.POSITIVE_INFINITY", right: "Double.NEGATIVE_INFINITY", op: "!==", result: "true"} - {left: "Double.NaN", right: "Double.NaN", op: "!=", result: "true"} - {left: "Double.NaN", right: "Double.NaN", op: "==", result: "false"} - {left: "Double.NaN", right: "0.1", op: "==", result: "false"} - {left: "Double.NaN", right: "0.1", op: "!=", result: "true"} - - {left: "new Number(Double.NaN)", right: "new Number(Double.NaN)", op: "!=", result: "true"} - - {left: "new Number(Double.NaN)", right: "new Number(Double.NaN)", op: "==", result: "false"} - - {left: "new Number(Double.NaN)", right: "new Number(0.1)", op: "==", result: "false"} - - {left: "new Number(Double.NaN)", right: "new Number(0.1)", op: "!=", result: "true"} + - {left: "Double.NaN", right: "Double.NaN", op: "!==", result: "true"} + - {left: "Double.NaN", right: "Double.NaN", op: "===", result: "false"} + - {left: "Double.NaN", right: "0.1", op: "===", result: "false"} + - {left: "Double.NaN", right: "0.1", op: "!==", result: "true"} - {left: "0.1", right: "0.0", op: "!=", result: "true"} - {left: "0.1", right: "0.0", op: "==", result: "false"} @@ -79,9 +78,9 @@ numeric_eq: - {left: "+0.0", right: "-0.0", op: "!=", result: "false"} - {left: "-0.0", right: "+0.0", op: "!=", result: "false"} - - {left: "new Float(0.1)", right: "new Double(0.0)", op: "!=", result: "true"} - - {left: "new Double(0.1)", right: "new Float(0.0)", op: "==", result: "false"} - - {left: "new Number(+0.0)", right: "new Double(-0.0)", op: "==", result: "true"} - - {left: "new Double(-0.0)", right: "new Float(+0.0)", op: "==", result: "true"} - - {left: "new Float(+0.0)", right: "new Number(-0.0)", op: "!=", result: "false"} - - {left: "new Float(-0.0)", right: "new Double(+0.0)", op: "!=", result: "false"} + - {left: "0.1", right: "0.0", op: "!==", result: "true"} + - {left: "0.1", right: "0.0", op: "===", result: "false"} + - {left: "+0.0", right: "-0.0", op: "===", result: "true"} + - {left: "-0.0", right: "+0.0", op: "===", result: "true"} + - {left: "+0.0", right: "-0.0", op: "!==", result: "false"} + - {left: "-0.0", right: "+0.0", op: "!==", result: "false"} diff --git a/static_core/plugins/ets/tests/test-lists/ets-cts/ets-cts-ignored.txt b/static_core/plugins/ets/tests/test-lists/ets-cts/ets-cts-ignored.txt index f85776d3b26defd03b4df5d5cfb015f6e440e1bf..72980135b57a80fe777da2764df4f7643d875c11 100644 --- a/static_core/plugins/ets/tests/test-lists/ets-cts/ets-cts-ignored.txt +++ b/static_core/plugins/ets/tests/test-lists/ets-cts/ets-cts-ignored.txt @@ -1240,6 +1240,13 @@ 07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n_2.ets 07.expressions/25.equality_expressions/01.numerical_equality_operators/char_eq_n_6.ets +#29900 CTE on ===, !== for bigint and other numeric +07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality_43.ets +07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality_46.ets +07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality_47.ets +07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality_48.ets +07.expressions/25.equality_expressions/01.numerical_equality_operators/different_types_equality_67.ets + #23051 Reference comparison 07.expressions/25.equality_expressions/reference_equality/type_conversion_of_one_operand_to_another_type.ets