<!DOCTYPE html>
<html>
<head>
    <title>layout zoom test</title>
    <style> 
        #test {
            width: 500px;
            height: 1500px;
            background: skyblue;
        }
        #test > div {
            background: navy;
            height: 15px;
        }
    </style>
</head>
<body>
    <div id="test"></div>
    <div id="console">
        The box above should be navy blue with no banding effects.<br>
    </div>
</body>
<script>
    var testElement = document.getElementById('test');
    var consoleElement = document.getElementById('console');

    function init()
    {
        testElement.innerHTML = '';
        for (var i = 0; i < 100; i++)
            testElement.appendChild(document.createElement('div'));
    }

    function test(zoom)
    {
        testElement.style.zoom = zoom + '%';
        
        var lastElementBottom = testElement.lastChild.getBoundingClientRect().bottom;
        var containerBottom = testElement.getBoundingClientRect().bottom;
        
        var tolerance = Math.ceil(1 / (zoom / 100));
        if (Math.abs(lastElementBottom - containerBottom) <= tolerance)
            log('PASS: With zoom of ' + zoom + '% bottom edge of last child lines up with bottom edge of container.');
        else
            log('FAIL: With zoom of ' + zoom + '% bottom edge of last child at ' + lastElementBottom + ', container at ' + containerBottom + '.');
    }

    function log(str)
    {
        consoleElement.appendChild(document.createTextNode(str));
        consoleElement.appendChild(document.createElement('br'));
    }

    init();
    test(100);
    test(110);
    test(125);
    test(133);
    test(150);
    test(166);
    test(175);
    test(200);
    test(250);
    test(300);
    test(400);
    test(500);
    test(750);
    test(1000);
    test(90);
    test(80);
    test(75);
    test(66);
    test(50);
    test(33);
    test(25);
    test(10);
    test(5);
</script>
</html>
