@drozdik.m/animation
Version:
Object for handling computed animations using lerp functions.
108 lines (107 loc) • 3.02 kB
JavaScript
exports.__esModule = true;
var unit_test_1 = require("@drozdik.m/unit-test");
var Linear_1 = require("@drozdik.m/lerp/dist/Linear");
var Animation_1 = require("../src/Animation");
var unitTest = new unit_test_1.UnitTest("Animation");
unitTest.AddAsyncTestCase("Animation events", function (Done, Fail) {
var animation = new Animation_1.Animation(1000, Linear_1.Linear);
animation.fps = 10;
var start = 0;
var end = 0;
var render = 0;
var frame = 0;
animation.OnStart.Add(function (caller, args) {
start++;
try {
unit_test_1.Assert.AreEqual(0, args.Value());
}
catch (_a) {
Fail();
}
});
animation.OnFrame.Add(function (caller, args) {
frame++;
try {
unit_test_1.Assert.AreEqual(frame * 100, args.Value());
}
catch (_a) {
Fail();
}
});
animation.OnRender.Add(function (caller, args) {
render++;
try {
}
catch (_a) {
Fail();
}
});
animation.OnEnd.Add(function (caller, args) {
end++;
try {
unit_test_1.Assert.AreEqual(1000, args.Value());
unit_test_1.Assert.AreEqual(1, start);
unit_test_1.Assert.AreEqual(10, frame);
unit_test_1.Assert.AreEqual(12, render);
unit_test_1.Assert.AreEqual(1, end);
Done();
}
catch (_a) {
Fail();
}
});
animation.Start(0, 1000);
});
unitTest.AddAsyncTestCase("Pause and continue", function (Done, Fail) {
var animation = new Animation_1.Animation(1000, Linear_1.Linear);
animation.fps = 10;
var start = 0;
var end = 0;
var render = 0;
var frame = 0;
animation.OnStart.Add(function (caller, args) {
start++;
try {
unit_test_1.Assert.AreEqual(0, args.Value());
}
catch (_a) {
Fail();
}
});
animation.OnFrame.Add(function (caller, args) {
frame++;
try {
unit_test_1.Assert.AreEqual(frame * 100, args.Value());
}
catch (_a) {
Fail();
}
});
animation.OnRender.Add(function (caller, args) {
render++;
try {
}
catch (_a) {
Fail();
}
});
animation.OnEnd.Add(function (caller, args) {
end++;
try {
unit_test_1.Assert.AreEqual(1000, args.Value());
unit_test_1.Assert.AreEqual(2, start);
unit_test_1.Assert.AreEqual(10, frame);
unit_test_1.Assert.AreEqual(13, render);
unit_test_1.Assert.AreEqual(1, end);
Done();
}
catch (_a) {
Fail();
}
});
animation.Start(0, 1000);
setTimeout(function () {
animation.Pause().Continue();
}, 550);
});
unitTest.Run();