<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.transformation.scale.3d</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">

<h1>2d.transformation.scale.3d</h1>
<p class="desc">scale() function with three arguments modifies the underlying matrix appropriately</p>


<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>

<ul id="d"></ul>
<script>
var t = async_test("scale() function with three arguments modifies the underlying matrix appropriately");
_addTest(function(canvas, ctx) {

const sx = 2;
const sy = 3;
const sz = 4;
ctx.scale(sx, sy, sz);
let canvasTransform = ctx.getTransform();
_assert(canvasTransform.m11 = sx, "canvasTransform.m11 = sx");
_assert(canvasTransform.m22 = sy, "canvasTransform.m22 = sy");
_assert(canvasTransform.m33 = sz, "canvasTransform.m33 = sz");
ctx.scale(sx, sy, sz);
canvasTransform = ctx.getTransform();
_assert(canvasTransform.m11 = 2 * sx, "canvasTransform.m11 = 2 * sx");
_assert(canvasTransform.m22 = 2 * sy, "canvasTransform.m22 = 2 * sy");
_assert(canvasTransform.m33 = 2 * sz, "canvasTransform.m33 = 2 * sz");


});
</script>

