<!doctype html>
<title>An+B Serialization</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>

foo { color: blue; }

</style>

<meta name="author" title="Tab Atkins-Bittner">
<link rel=help href="https://drafts.csswg.org/css-syntax/#serializing-anb">

<script>

function roundtripANB(str) {
    const rule = document.styleSheets[0].cssRules[0];
    rule.selectorText = "foo";
    rule.selectorText = `:nth-child(${str})`;
    // Check for parse error.
    if(rule.selectorText == "foo") return "parse error";
    return rule.selectorText.slice(11, -1);
}
function testANB(input, expected) {
    test(()=>{
        assert_equals(roundtripANB(input), expected);
    }, `"${input}" becomes "${expected}"`);
}

/* A is 0, or omitted */
testANB("1", "1");
testANB("+1", "1");
testANB("-1", "-1");
testANB("0n + 0", "0");
testANB("0n + 1", "1");
testANB("0n - 1", "-1");

/* A is 1 */
testANB("1n", "n");
testANB("1n - 0", "n");
testANB("1n + 1", "n+1");
testANB("1n - 1", "n-1");

/* A is -1 */
testANB("-1n", "-n");
testANB("-1n - 0", "-n");
testANB("-1n + 1", "-n+1");
testANB("-1n - 1", "-n-1");

/* A is implied via + or - */
testANB("+n+1", "n+1");
testANB("-n-1", "-n-1");

/* B is 0 */
testANB("n + 0", "n");
testANB("n - 0", "n");

/* A & B both nonzero */
testANB("2n + 2", "2n+2");
testANB("-2n - 2", "-2n-2");

</script>
