blob: dc1e7959f6e32175797c784b57cb5560841ea9f8 [file] [log] [blame]
<meta charset="utf-8">
<title>CSSNumericValue.equals tests</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-cssnumericvalue-equals">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script>
'use strict';
test(() => {
assert_true(CSS.px(1).equals(CSS.px(1)));
}, 'Two CSSUnitValues with same value and unit are equal');
test(() => {
assert_false(CSS.px(0).equals(CSS.px(1)));
}, 'Two CSSUnitValues with different values are not equal');
test(() => {
assert_false(CSS.px(1).equals(CSS.number(1)));
}, 'Two CSSUnitValues with different units are not equal');
test(() => {
const a = new CSSMathSum(0, new CSSMathNegate(0));
const b = new CSSMathProduct(0, new CSSMathNegate(0));
assert_false(a.equals(b));
}, 'Two CSSMathValues with different types are not equal');
test(() => {
const a = new CSSMathSum(0, new CSSMathNegate(0));
const b = new CSSMathSum(0);
assert_false(a.equals(b));
}, 'Two CSSMathValues with different number of values are not equal');
test(() => {
const a = new CSSMathSum(0, new CSSMathNegate(0));
const b = new CSSMathSum(0, new CSSMathNegate(1));
assert_false(a.equals(b));
}, 'Two CSSMathValues with different values are not equal');
test(() => {
const a = new CSSMathSum(0, new CSSMathNegate(0));
const b = new CSSMathSum(0, new CSSMathNegate(0));
assert_true(a.equals(b));
}, 'Two CSSMathValues with same structure are equal');
test(() => {
const a = new CSSMathSum(0, new CSSMathNegate(0));
const b = new CSSMathSum(0, new CSSMathNegate(0));
const c = new CSSMathSum(0, new CSSMathNegate(0));
const d = new CSSMathSum(0, new CSSMathNegate(0));
assert_true(a.equals(b, c, d));
}, 'Multiple CSSMathValues with same structure are equal');
test(() => {
const a = new CSSMathSum(0, new CSSMathNegate(0));
const b = new CSSMathSum(0, new CSSMathNegate(0));
const c = new CSSMathSum(0, new CSSMathNegate(1));
const d = new CSSMathSum(0, new CSSMathNegate(0));
assert_false(a.equals(b, c, d));
}, 'Multiple CSSMathValues with one different are not equal');
test(() => {
const a = new CSSMathClamp(1, 2, 3);
const b = new CSSMathClamp(CSS.number(1), CSS.number(2), CSS.number(3));
assert_true(a.equals(b));
}, 'Two CSSMathClamp with same value and unit are equal');
test(() => {
const a = new CSSMathClamp(1, 2, 3);
const b = new CSSMathClamp(CSS.px(1), CSS.px(2), CSS.px(3));
assert_false(a.equals(b));
}, 'Two CSSMathClamp with different units are not equal');
</script>