chromium/third_party/blink/web_tests/css-parser/serialize-css-alpha-value.html

<!DOCTYPE html>
<body>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
test(function() {
    for (var i = 0.0; i <= 1.0; i += 0.01) {
        var rgba = 'rgba(0, 0, 0, ' + parseFloat(i.toFixed(2)) + ')';
        document.body.style.color = rgba;
        assert_equals(document.body.style.color, rgba);
        assert_equals(getComputedStyle(document.body).color, rgba);
    }
}, 'Alpha values should parse and serialize to the same value to 2 decimal places');

test(function() {
    var testCases = [
      ['rgba(0, 0, 0, 0.501)', 'rgba(0, 0, 0, 0.5)'],
      ['rgba(0, 0, 0, 0.011)', 'rgba(0, 0, 0, 0.01)'],
      ['rgba(0, 0, 0, 0.0041)', 'rgba(0, 0, 0, 0.004)'],
      ['rgba(0, 0, 0, 0.01601)', 'rgba(0, 0, 0, 0.016)']
    ];
    for (var i = 0; i < testCases.length; ++i) {
        var rgba = testCases[i][0];
        var expected = testCases[i][1];
        document.body.style.color = rgba;
        assert_equals(document.body.style.color, expected);
        assert_equals(getComputedStyle(document.body).color, expected);
    }
}, 'Alpha values with three or more decimals should parse and serialize to ' +
   '1, 2, or 3 decimal places according to w3c spec');
</script>