<!doctype html>
<meta charset="utf-8">
<title>CSS Tests: calc() and division for integers</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="author" title="Mozilla" href="https://mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-range">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2337">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="test"></div>
<script>
const TESTS = [
  {
    specified: "calc(2)",
    computed: "2",
    description: "Sanity",
  },
  {
    specified: "calc(4 / 2)",
    computed: "2",
    description: "Basic division works",
  },
  {
    specified: "calc(1 / 2)",
    computed: "1",
    description: "Rounds up if fractional part is >= 0.5",
  },
  {
    specified: "calc(0.5)",
    computed: "1",
    description: "Accepts numbers, and rounds",
  },
  {
    specified: "calc(6 / 2.0)",
    computed: "3",
    description: "Operation between <integer> and <number> works",
  },
  {
    specified: "calc(1 / 3)",
    computed: "0",
    description: "Rounds down if fractional part is < 0.5",
  },
  {
    specified: "calc(calc(1 / 3) * 3)",
    computed: "1",
    description: "Only rounds at the end of the conversion",
  }
];

const testElement = document.getElementById("test");
for (const { specified, computed, description } of TESTS) {
  test(function() {
    testElement.style.zIndex = "42"; // Just something that we know it's valid and makes tests not rely on order.
    testElement.style.zIndex = specified;
    assert_equals(getComputedStyle(testElement).zIndex, computed);
  }, description);
}
</script>
