UNPKG

wonder.js

Version:
256 lines (252 loc) 22 kB
'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var Sinon = require("wonder-bs-sinon/lib/js/src/sinon.js"); var Sinon$1 = require("sinon"); var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js"); var TestTool$Wonderjs = require("../../../../tool/TestTool.js"); var CameraTool$Wonderjs = require("../../../../tool/service/camera/CameraTool.js"); var DisposeJob$Wonderjs = require("../../../../../src/job/no_worker/loop/DisposeJob.js"); var GameObjectAPI$Wonderjs = require("../../../../../src/api/GameObjectAPI.js"); var MainStateTool$Wonderjs = require("../../../../tool/service/state/MainStateTool.js"); var GameObjectTool$Wonderjs = require("../../../../tool/service/gameObject/GameObjectTool.js"); var UpdateCameraJob$Wonderjs = require("../../../../../src/job/no_worker/loop/UpdateCameraJob.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js"); var PerspectiveCameraProjectionAPI$Wonderjs = require("../../../../../src/api/camera/PerspectiveCameraProjectionAPI.js"); var PerspectiveCameraProjectionTool$Wonderjs = require("../../../../tool/service/camera/PerspectiveCameraProjectionTool.js"); Wonder_jest.describe("PerspectiveCameraProjection", (function (param) { var sandbox = Sinon.getSandboxDefaultVal(/* () */0); var state = /* record */[/* contents */MainStateTool$Wonderjs.createState(/* () */0)]; beforeEach((function () { sandbox[0] = Sinon$1.sandbox.create(); state[0] = TestTool$Wonderjs.init(sandbox, undefined, undefined, /* () */0); return /* () */0; })); afterEach((function () { return Curry._1(Sinon.restoreSandbox, sandbox[0]); })); Wonder_jest.describe("createPerspectiveCameraProjection", (function (param) { Wonder_jest.test("create a new camera which is just index(int)", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match[1]), 0); })); Wonder_jest.describe("change state", (function (param) { return Wonder_jest.test("state->index + 1", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); var record = match[0][/* perspectiveCameraProjectionRecord */14]; return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](record[/* index */0]), 1); })); })); return Wonder_jest.test("add to dirty array", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionTool$Wonderjs.getDirtyArray(match[0])), /* array */[match[1]]); })); })); Wonder_jest.describe("getAllPerspectiveCameraProjections", (function (param) { var _createPerspectiveCameraProjectionGameObjects = function (state) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var match$1 = CameraTool$Wonderjs.createCameraGameObject(match[0]); var match$2 = CameraTool$Wonderjs.createCameraGameObject(match$1[0]); return /* tuple */[ match$2[0], /* tuple */[ match[1], match$1[1], match$2[1] ], /* tuple */[ match[3][1], match$1[3][1], match$2[3][1] ] ]; }; Wonder_jest.test("get all cameraProjections include the ones add or not add to gameObject", (function (param) { var match = _createPerspectiveCameraProjectionGameObjects(state); var match$1 = match[2]; var match$2 = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.getAllPerspectiveCameraProjections(match$2[0])), /* array */[ match$1[0], match$1[1], match$1[2], match$2[1] ]); })); return Wonder_jest.test("test dispose", (function (param) { var match = _createPerspectiveCameraProjectionGameObjects(state); var match$1 = match[1]; var state$1 = GameObjectAPI$Wonderjs.disposeGameObject(match$1[2], GameObjectAPI$Wonderjs.disposeGameObject(match$1[1], match[0])); var state$2 = DisposeJob$Wonderjs.execJob(undefined, state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.getAllPerspectiveCameraProjectionComponents(state$2)), /* array */[match[2][0]]); })); })); Wonder_jest.describe("markPerspectiveCameraProjectionDirty", (function (param) { return Wonder_jest.test("mark dirty", (function (param) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var cameraProjection1 = match[3][1]; var state$1 = UpdateCameraJob$Wonderjs.execJob(undefined, match[0]); var state$2 = PerspectiveCameraProjectionAPI$Wonderjs.markPerspectiveCameraProjectionDirty(cameraProjection1, state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionTool$Wonderjs.getDirtyArray(state$2)), /* array */[cameraProjection1]); })); })); Wonder_jest.describe("markPerspectiveCameraProjectionNotDirty", (function (param) { return Wonder_jest.test("mark not dirty", (function (param) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var cameraProjection1 = match[3][1]; var match$1 = CameraTool$Wonderjs.createCameraGameObject(match[0]); var state$1 = PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionFar(cameraProjection1, 2, match$1[0]); var state$2 = PerspectiveCameraProjectionAPI$Wonderjs.markPerspectiveCameraProjectionNotDirty(cameraProjection1, state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArrayService$WonderCommonlib.removeDuplicateItems(PerspectiveCameraProjectionTool$Wonderjs.getDirtyArray(state$2))), /* array */[match$1[3][1]]); })); })); Wonder_jest.describe("unsafeGetPerspectiveCameraProjectionGameObject", (function (param) { return Wonder_jest.test("get cameraProjection's gameObject", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); var cameraProjection = match[1]; var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]); var gameObject = match$1[1]; var state$1 = GameObjectAPI$Wonderjs.addGameObjectPerspectiveCameraProjectionComponent(gameObject, cameraProjection, match$1[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraProjectionGameObject(cameraProjection, state$1)), gameObject); })); })); Wonder_jest.describe("dispose component", (function (param) { var _prepareTwo = function (state) { var match = CameraTool$Wonderjs.createCameraGameObject(state); var match$1 = CameraTool$Wonderjs.createCameraGameObject(match[0]); return /* tuple */[ match$1[0], match[1], match[3][1], match$1[1], match$1[3][1] ]; }; Wonder_jest.describe("dispose data", (function (param) { Wonder_jest.test("dirtyArray: remove from array(include duplicated ones)", (function (param) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var perspectiveCameraProjection1 = match[3][1]; var state$1 = PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionFar(perspectiveCameraProjection1, 1000, PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionNear(perspectiveCameraProjection1, 0.1, match[0])); var state$2 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(match[1], perspectiveCameraProjection1, state$1); var match$1 = state$2[/* perspectiveCameraProjectionRecord */14]; return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match$1[/* dirtyArray */1]), /* array */[]); })); Wonder_jest.test("remove from pMatrixMap, gameObjectMap", (function (param) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var perspectiveCameraProjection1 = match[3][1]; var state$1 = PerspectiveCameraProjectionTool$Wonderjs.updateCameraProjection(perspectiveCameraProjection1, match[0]); var state$2 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(match[1], perspectiveCameraProjection1, state$1); var match$1 = state$2[/* perspectiveCameraProjectionRecord */14]; return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ MutableSparseMapService$WonderCommonlib.has(perspectiveCameraProjection1, match$1[/* pMatrixMap */2]), MutableSparseMapService$WonderCommonlib.has(perspectiveCameraProjection1, match$1[/* gameObjectMap */7]) ]), /* tuple */[ false, false ]); })); return Wonder_jest.test("remove from nearMap, farMap, fovyMap, aspectMap", (function (param) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var perspectiveCameraProjection1 = match[3][1]; var state$1 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(match[1], perspectiveCameraProjection1, match[0]); var record = state$1[/* perspectiveCameraProjectionRecord */14]; return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ MutableSparseMapService$WonderCommonlib.has(perspectiveCameraProjection1, record[/* nearMap */3]), MutableSparseMapService$WonderCommonlib.has(perspectiveCameraProjection1, record[/* farMap */4]), MutableSparseMapService$WonderCommonlib.has(perspectiveCameraProjection1, record[/* fovyMap */5]), MutableSparseMapService$WonderCommonlib.has(perspectiveCameraProjection1, record[/* aspectMap */6]) ]), /* tuple */[ false, false, false, false ]); })); })); Wonder_jest.describe("test add new one after dispose old one", (function (param) { Wonder_jest.test("use disposed index as new index firstly", (function (param) { var match = _prepareTwo(state[0]); var perspectiveCameraProjection1 = match[2]; var state$1 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(match[1], perspectiveCameraProjection1, match[0]); var match$1 = CameraTool$Wonderjs.createCameraGameObject(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match$1[3][1]), perspectiveCameraProjection1); })); return Wonder_jest.test("if has no disposed index, get index from record.index", (function (param) { var match = _prepareTwo(state[0]); var perspectiveCameraProjection1 = match[2]; var state$1 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(match[1], perspectiveCameraProjection1, match[0]); var match$1 = CameraTool$Wonderjs.createCameraGameObject(state$1); var match$2 = CameraTool$Wonderjs.createCameraGameObject(match$1[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ match$1[3][1], match$2[3][1] ]), /* tuple */[ perspectiveCameraProjection1, match[4] + 1 | 0 ]); })); })); return Wonder_jest.describe("contract check", (function (param) { return Wonder_jest.test("expect dispose the alive component, but actual not", (function (param) { var match = _prepareTwo(state[0]); var perspectiveCameraProjection1 = match[2]; var gameObject1 = match[1]; var state$1 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(gameObject1, perspectiveCameraProjection1, match[0]); return Wonder_jest.Expect[/* toThrowMessage */21]("expect dispose the alive component, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) { GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(gameObject1, perspectiveCameraProjection1, state$1); return /* () */0; }))); })); })); })); Wonder_jest.describe("contract check: is alive", (function (param) { return Wonder_jest.describe("if cameraProjection is disposed", (function (param) { var _testGetFunc = function (getFunc) { var match = CameraTool$Wonderjs.createCameraGameObject(state[0]); var cameraProjection = match[3][1]; var state$1 = GameObjectTool$Wonderjs.disposeGameObjectPerspectiveCameraProjectionComponent(match[1], cameraProjection, match[0]); return Wonder_jest.Expect[/* toThrowMessage */21]("expect component alive, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) { return Curry._2(getFunc, cameraProjection, state$1); }))); }; Wonder_jest.test("unsafeGetPerspectiveCameraProjectionGameObject should error", (function (param) { return _testGetFunc(PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraProjectionGameObject); })); return Wonder_jest.test("unsafeGetPerspectiveCameraProjectionPMatrix should error", (function (param) { return _testGetFunc(PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraProjectionPMatrix); })); })); })); Wonder_jest.describe("getFovy", (function (param) { return Wonder_jest.test("test", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); var cameraProjection = match[1]; var state$1 = PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionFovy(cameraProjection, 65, match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraFovy(cameraProjection, state$1)), 65); })); })); Wonder_jest.describe("getAspect", (function (param) { return Wonder_jest.test("test", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); var cameraProjection = match[1]; var state$1 = PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionAspect(cameraProjection, 1, match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraAspect(cameraProjection, state$1)), 1); })); })); Wonder_jest.describe("getNear", (function (param) { return Wonder_jest.test("test", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); var cameraProjection = match[1]; var state$1 = PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionNear(cameraProjection, 0.1, match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraNear(cameraProjection, state$1)), 0.1); })); })); return Wonder_jest.describe("getFar", (function (param) { return Wonder_jest.test("test", (function (param) { var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state[0]); var cameraProjection = match[1]; var state$1 = PerspectiveCameraProjectionAPI$Wonderjs.setPerspectiveCameraProjectionFar(cameraProjection, 1000, match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraFar(cameraProjection, state$1)), 1000); })); })); })); /* Not a pure module */