UNPKG

@webarkit/jsartoolkit-nft

Version:

Emscripten port of ARToolKit5 to JavaScript. It is a lighter version of Jsartoolkit5 with only NFT markerless support

141 lines (134 loc) 4.04 kB
QUnit.module("ARCameraParaNFT"); QUnit.test("Create object and load camera parameter", function (assert) { const cParaUrl = "./base/examples/Data/camera_para.dat"; const done = assert.async(); const success = function () { assert.ok(true, "Successfully loaded camera para"); done(); }; const error = function () { assert.ok(false, "Failed loading camera para"); done(); }; const cameraPara = new ARCameraParamNFT(cParaUrl, success, error, false); assert.equal( cameraPara.src, cParaUrl, "Camera para URL is equal to: " + cParaUrl, ); }); QUnit.test( "Create object and fail to load camera parameter", function (assert) { const cParaUrl = "./base/examples/Data/camera_para_error.dat"; const done = assert.async(); const success = function () { assert.ok(false, "Successfully loaded camera para"); done(); }; const error = function () { assert.ok(true, "Failed loading camera para"); done(); }; const cameraPara = new ARCameraParamNFT(cParaUrl, success, error, false); }, ); QUnit.test("Try to load twice", (assert) => { const cParaUrl = "./base/examples/Data/camera_para_error.dat"; const success = function () {}; const error = function () {}; const cameraPara = new ARCameraParamNFT(cParaUrl, success, error); assert.throws(() => { cameraPara.load("./base/examples/Data/camera_para.dat"); }, "Throws an error that calibration tried to load twice"); }); QUnit.test( "Try to load twice but empty existing ARCameraParamNFT before loading", (assert) => { const cParaUrl = "./base/examples/Data/camera_para_error.dat"; const success = function () {}; const error = function () {}; const cameraPara = new ARCameraParamNFT(cParaUrl, success, error); cameraPara.dispose(); assert.deepEqual("", cameraPara.src); const cameraParaString = "./base/examples/Data/camera_para.dat"; cameraPara.load(cameraParaString); assert.deepEqual( cameraParaString, cameraPara.src, "load after dispose should work", ); }, ); /* #### ARController Module #### */ QUnit.module("ARControllerNFT", { beforeEach: (assert) => { this.timeout = 5000; this.cleanUpTimeout = 500; this.cParaUrl = "./base/examples/Data/camera_para.dat"; this.checkDefault = (arController) => { assert.ok(arController); assert.deepEqual( arController.listeners, {}, "Check the default values: listeners", ); assert.deepEqual( arController.transform_mat, new Float32Array(16), "Check the default values: transform_mat", ); }; }, }); QUnit.test("Create ARControllerNFT default", (assert) => { const videoWidth = 640; const videoHeight = 480; const done = assert.async(); assert.timeout(this.timeout); const success = () => { const arController = new ARControllerNFT( videoWidth, videoHeight, cameraPara, ); this.checkDefault(arController); arController.onload = (err) => { assert.notOk(err, "no error"); assert.ok(true, "successfully loaded"); assert.deepEqual( arController.cameraParam, cameraPara, "Check the default values: cameraPara", ); assert.deepEqual( arController.videoWidth, videoWidth, "Check the default values: videoWidth", ); assert.deepEqual( arController.videoHeight, videoHeight, "Check the default values: videoHeight", ); assert.deepEqual( arController.width, videoWidth, "Check the default values: width", ); assert.deepEqual( arController.height, videoHeight, "Check the default values: height", ); setTimeout(() => { arController.dispose(); done(); }, this.cleanUpTimeout); }; }; const error = function () { assert.ok(false); }; const cameraPara = new ARCameraParamNFT(this.cParaUrl, success, error); });