wonder.js
Version:
590 lines (587 loc) • 200 kB
JavaScript
'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 Caml_option = require("bs-platform/lib/js/caml_option.js");
var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js");
var SceneAPI$Wonderjs = require("../../../../src/api/SceneAPI.js");
var TestTool$Wonderjs = require("../../../tool/TestTool.js");
var ArrayTool$Wonderjs = require("../../../tool/service/atom/ArrayTool.js");
var ScriptAPI$Wonderjs = require("../../../../src/api/script/ScriptAPI.js");
var CameraTool$Wonderjs = require("../../../tool/service/camera/CameraTool.js");
var DisposeJob$Wonderjs = require("../../../../src/job/no_worker/loop/DisposeJob.js");
var FakeGlTool$Wonderjs = require("../../../tool/gl/FakeGlTool.js");
var ScriptTool$Wonderjs = require("../../../tool/service/script/ScriptTool.js");
var GeometryAPI$Wonderjs = require("../../../../src/api/geometry/GeometryAPI.js");
var SettingTool$Wonderjs = require("../../../tool/service/setting/SettingTool.js");
var GeometryTool$Wonderjs = require("../../../tool/service/geometry/GeometryTool.js");
var TransformAPI$Wonderjs = require("../../../../src/api/TransformAPI.js");
var GameObjectAPI$Wonderjs = require("../../../../src/api/GameObjectAPI.js");
var MainStateTool$Wonderjs = require("../../../tool/service/state/MainStateTool.js");
var TransformTool$Wonderjs = require("../../../tool/service/transform/TransformTool.js");
var VboBufferTool$Wonderjs = require("../../../tool/service/vboBuffer/VboBufferTool.js");
var GameObjectTool$Wonderjs = require("../../../tool/service/gameObject/GameObjectTool.js");
var PointLightTool$Wonderjs = require("../../../tool/service/light/PointLightTool.js");
var AllMaterialTool$Wonderjs = require("../../../tool/service/material/AllMaterialTool.js");
var BoxGeometryTool$Wonderjs = require("../../../tool/service/geometry/BoxGeometryTool.js");
var MeshRendererAPI$Wonderjs = require("../../../../src/api/MeshRendererAPI.js");
var BasicMaterialAPI$Wonderjs = require("../../../../src/api/material/BasicMaterialAPI.js");
var LightMaterialAPI$Wonderjs = require("../../../../src/api/material/LightMaterialAPI.js");
var MeshRendererTool$Wonderjs = require("../../../tool/service/meshRenderer/MeshRendererTool.js");
var BasicMaterialTool$Wonderjs = require("../../../tool/service/material/BasicMaterialTool.js");
var DirectionLightAPI$Wonderjs = require("../../../../src/api/light/DirectionLightAPI.js");
var LightMaterialTool$Wonderjs = require("../../../tool/service/material/LightMaterialTool.js");
var BasicCameraViewAPI$Wonderjs = require("../../../../src/api/camera/BasicCameraViewAPI.js");
var DirectionLightTool$Wonderjs = require("../../../tool/service/light/DirectionLightTool.js");
var ObjectInstanceTool$Wonderjs = require("../../../tool/service/instance/ObjectInstanceTool.js");
var SourceInstanceTool$Wonderjs = require("../../../tool/service/instance/SourceInstanceTool.js");
var BasicCameraViewTool$Wonderjs = require("../../../tool/service/camera/BasicCameraViewTool.js");
var NoWorkerJobConfigTool$Wonderjs = require("../../../tool/service/noWorkerJob/NoWorkerJobConfigTool.js");
var BasicSourceTextureTool$Wonderjs = require("../../../tool/service/texture/BasicSourceTextureTool.js");
var FlyCameraControllerAPI$Wonderjs = require("../../../../src/api/camera_controller/FlyCameraControllerAPI.js");
var FlyCameraControllerTool$Wonderjs = require("../../../tool/service/camera_controller/FlyCameraControllerTool.js");
var InitBasicMaterialJobTool$Wonderjs = require("../../../tool/job/no_worker/init/InitBasicMaterialJobTool.js");
var InitLightMaterialJobTool$Wonderjs = require("../../../tool/job/no_worker/init/InitLightMaterialJobTool.js");
var ArcballCameraControllerAPI$Wonderjs = require("../../../../src/api/camera_controller/ArcballCameraControllerAPI.js");
var ArcballCameraControllerTool$Wonderjs = require("../../../tool/service/camera_controller/ArcballCameraControllerTool.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
var PerspectiveCameraProjectionAPI$Wonderjs = require("../../../../src/api/camera/PerspectiveCameraProjectionAPI.js");
var ArrayBufferViewSourceTextureAPI$Wonderjs = require("../../../../src/api/texture/ArrayBufferViewSourceTextureAPI.js");
var PerspectiveCameraProjectionTool$Wonderjs = require("../../../tool/service/camera/PerspectiveCameraProjectionTool.js");
var ArrayBufferViewSourceTextureTool$Wonderjs = require("../../../tool/service/texture/ArrayBufferViewSourceTextureTool.js");
var ReallocateGameObjectCPUMemoryTool$Wonderjs = require("../../../tool/reallocate/ReallocateGameObjectCPUMemoryTool.js");
Wonder_jest.describe("GameObject", (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("createGameObject", (function (param) {
Wonder_jest.test("create a new gameObject which is just uidStr(string)", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match[1]), 1);
}));
Wonder_jest.test("add new transform component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectTransformComponent(match[1], match[0])), true);
}));
return Wonder_jest.describe("change state", (function (param) {
return Wonder_jest.test("state->uid + 1", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var record = GameObjectTool$Wonderjs.getGameObjectRecord(match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](record[/* uid */0]), 2);
}));
}));
}));
Wonder_jest.describe("test operate component", (function (param) {
Wonder_jest.describe("test transform component", (function (param) {
Wonder_jest.describe("addGameObjectTransformComponent", (function (param) {
Wonder_jest.test("if this type of component is already exist, error", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var state$1 = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect this type of the component shouldn't be added before, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
var match = TransformAPI$Wonderjs.createTransform(state$1);
return GameObjectAPI$Wonderjs.addGameObjectTransformComponent(gameObject, match[1], match[0]);
})));
}));
return Wonder_jest.test("can get component's gameObject", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var state$1 = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.unsafeGetTransformGameObject(GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(gameObject, state$1), state$1)), gameObject);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectTransformComponent", (function (param) {
return Wonder_jest.test("get transform component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
return TransformTool$Wonderjs.isTransform(GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(match[1], match[0]));
}));
}));
return Wonder_jest.describe("hasGameObjectTransformComponent", (function (param) {
return Wonder_jest.test("has transform component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectTransformComponent(match[1], match[0])), true);
}));
}));
}));
Wonder_jest.describe("test material component", (function (param) {
Wonder_jest.describe("unsafeGetGameObjectBasicMaterialComponent", (function (param) {
return Wonder_jest.test("get material component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = BasicMaterialAPI$Wonderjs.createBasicMaterial(match[0]);
var state$1 = GameObjectAPI$Wonderjs.addGameObjectBasicMaterialComponent(gameObject, match$1[1], match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectBasicMaterialComponent(gameObject, state$1)), true);
}));
}));
Wonder_jest.describe("hasGameObjectBasicMaterialComponent", (function (param) {
return Wonder_jest.test("has material component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = BasicMaterialAPI$Wonderjs.createBasicMaterial(match[0]);
var state$1 = GameObjectAPI$Wonderjs.addGameObjectBasicMaterialComponent(gameObject, match$1[1], match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectBasicMaterialComponent(gameObject, state$1)), true);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectLightMaterialComponent", (function (param) {
return Wonder_jest.test("get material component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = LightMaterialAPI$Wonderjs.createLightMaterial(match[0]);
var state$1 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject, match$1[1], match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectLightMaterialComponent(gameObject, state$1)), true);
}));
}));
return Wonder_jest.describe("hasGameObjectLightMaterialComponent", (function (param) {
return Wonder_jest.test("has material component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = LightMaterialAPI$Wonderjs.createLightMaterial(match[0]);
var state$1 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject, match$1[1], match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectLightMaterialComponent(gameObject, state$1)), true);
}));
}));
}));
Wonder_jest.describe("test geometry component", (function (param) {
Wonder_jest.describe("unsafeGetGeometryComponent", (function (param) {
return Wonder_jest.test("get geometry component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = GeometryAPI$Wonderjs.createGeometry(match[0]);
var match$2 = GeometryAPI$Wonderjs.createGeometry(match$1[0]);
var geometry2 = match$2[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectGeometryComponent(gameObject, geometry2, match$2[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.unsafeGetGameObjectGeometryComponent(gameObject, state$1)), geometry2);
}));
}));
return Wonder_jest.describe("hasGameObjectGeometryComponent", (function (param) {
return Wonder_jest.test("has geometry component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = GeometryAPI$Wonderjs.createGeometry(match[0]);
var state$1 = GameObjectAPI$Wonderjs.addGameObjectGeometryComponent(gameObject, match$1[1], match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectGeometryComponent(gameObject, state$1)), true);
}));
}));
}));
Wonder_jest.describe("test meshRenderer component", (function (param) {
Wonder_jest.describe("unsafeGetGameObjectMeshRendererComponent", (function (param) {
return Wonder_jest.test("get meshRenderer component", (function (param) {
var match = MeshRendererTool$Wonderjs.createBasicMaterialGameObject(state[0]);
return MeshRendererTool$Wonderjs.isMeshRenderer(GameObjectAPI$Wonderjs.unsafeGetGameObjectMeshRendererComponent(match[1], match[0]));
}));
}));
return Wonder_jest.describe("hasGameObjectMeshRendererComponent", (function (param) {
return Wonder_jest.test("has meshRenderer component", (function (param) {
var match = MeshRendererTool$Wonderjs.createBasicMaterialGameObject(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectMeshRendererComponent(match[1], match[0])), true);
}));
}));
}));
Wonder_jest.describe("test light component", (function (param) {
Wonder_jest.describe("unsafeGetGameObjectDirectionLightComponent", (function (param) {
return Wonder_jest.test("get light component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = DirectionLightAPI$Wonderjs.createDirectionLight(match[0]);
var light = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectDirectionLightComponent(gameObject, light, match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.unsafeGetGameObjectDirectionLightComponent(gameObject, state$1)), light);
}));
}));
return Wonder_jest.describe("hasGameObjectDirectionLightComponent", (function (param) {
return Wonder_jest.test("has light component", (function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = DirectionLightAPI$Wonderjs.createDirectionLight(match[0]);
var state$1 = GameObjectAPI$Wonderjs.addGameObjectDirectionLightComponent(gameObject, match$1[1], match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectDirectionLightComponent(gameObject, state$1)), true);
}));
}));
}));
Wonder_jest.describe("test script component", (function (param) {
var _prepare = function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = ScriptAPI$Wonderjs.createScript(match[0]);
var script = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectScriptComponent(gameObject, script, match$1[0]);
return /* tuple */[
state$1,
gameObject,
script
];
};
Wonder_jest.describe("addGameObjectScriptComponent", (function (param) {
Wonder_jest.test("if this type of component is already exist, error", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect this type of the component shouldn't be added before, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
var match = ScriptAPI$Wonderjs.createScript(state);
return GameObjectAPI$Wonderjs.addGameObjectScriptComponent(gameObject, match[1], match[0]);
})));
}));
return Wonder_jest.test("can get component's gameObject", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ScriptAPI$Wonderjs.unsafeGetScriptGameObject(GameObjectAPI$Wonderjs.unsafeGetGameObjectScriptComponent(gameObject, state), state)), gameObject);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectScriptComponent", (function (param) {
return Wonder_jest.test("get script component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.unsafeGetGameObjectScriptComponent(match[1], match[0])), match[2]);
}));
}));
return Wonder_jest.describe("hasGameObjectScriptComponent", (function (param) {
return Wonder_jest.test("has script component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectScriptComponent(match[1], match[0])), true);
}));
}));
}));
Wonder_jest.describe("test basicCameraView component", (function (param) {
var _prepare = function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = BasicCameraViewAPI$Wonderjs.createBasicCameraView(match[0]);
var basicCameraView = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectBasicCameraViewComponent(gameObject, basicCameraView, match$1[0]);
return /* tuple */[
state$1,
gameObject,
basicCameraView
];
};
Wonder_jest.describe("addGameObjectBasicCameraViewComponent", (function (param) {
Wonder_jest.test("if this type of component is already exist, error", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect this type of the component shouldn't be added before, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
var match = BasicCameraViewAPI$Wonderjs.createBasicCameraView(state);
return GameObjectAPI$Wonderjs.addGameObjectBasicCameraViewComponent(gameObject, match[1], match[0]);
})));
}));
return Wonder_jest.test("can get component's gameObject", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicCameraViewAPI$Wonderjs.unsafeGetBasicCameraViewGameObject(GameObjectAPI$Wonderjs.unsafeGetGameObjectBasicCameraViewComponent(gameObject, state), state)), gameObject);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectBasicCameraViewComponent", (function (param) {
return Wonder_jest.test("get basicCameraView component", (function (param) {
var match = _prepare(/* () */0);
return BasicCameraViewTool$Wonderjs.isBasicCameraView(GameObjectAPI$Wonderjs.unsafeGetGameObjectBasicCameraViewComponent(match[1], match[0]));
}));
}));
return Wonder_jest.describe("hasGameObjectBasicCameraViewComponent", (function (param) {
return Wonder_jest.test("has basicCameraView component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectBasicCameraViewComponent(match[1], match[0])), true);
}));
}));
}));
Wonder_jest.describe("test perspectiveCameraProjection component", (function (param) {
var _prepare = function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(match[0]);
var perspectiveCameraProjection = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectPerspectiveCameraProjectionComponent(gameObject, perspectiveCameraProjection, match$1[0]);
return /* tuple */[
state$1,
gameObject,
perspectiveCameraProjection
];
};
Wonder_jest.describe("addGameObjectPerspectiveCameraProjectionComponent", (function (param) {
Wonder_jest.test("if this type of component is already exist, error", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect this type of the component shouldn't be added before, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
var match = PerspectiveCameraProjectionAPI$Wonderjs.createPerspectiveCameraProjection(state);
return GameObjectAPI$Wonderjs.addGameObjectPerspectiveCameraProjectionComponent(gameObject, match[1], match[0]);
})));
}));
return Wonder_jest.test("can get component's gameObject", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](PerspectiveCameraProjectionAPI$Wonderjs.unsafeGetPerspectiveCameraProjectionGameObject(GameObjectAPI$Wonderjs.unsafeGetGameObjectPerspectiveCameraProjectionComponent(gameObject, state), state)), gameObject);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectPerspectiveCameraProjectionComponent", (function (param) {
return Wonder_jest.test("get perspectiveCameraProjection component", (function (param) {
var match = _prepare(/* () */0);
return PerspectiveCameraProjectionTool$Wonderjs.isPerspectiveCameraProjection(GameObjectAPI$Wonderjs.unsafeGetGameObjectPerspectiveCameraProjectionComponent(match[1], match[0]));
}));
}));
return Wonder_jest.describe("hasGameObjectPerspectiveCameraProjectionComponent", (function (param) {
return Wonder_jest.test("has perspectiveCameraProjection component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectPerspectiveCameraProjectionComponent(match[1], match[0])), true);
}));
}));
}));
Wonder_jest.describe("test flyCameraController component", (function (param) {
var _prepare = function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = FlyCameraControllerAPI$Wonderjs.createFlyCameraController(match[0]);
var flyCameraController = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectFlyCameraControllerComponent(gameObject, flyCameraController, match$1[0]);
return /* tuple */[
state$1,
gameObject,
flyCameraController
];
};
Wonder_jest.describe("addGameObjectFlyCameraControllerComponent", (function (param) {
Wonder_jest.test("if this type of component is already exist, error", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect this type of the component shouldn't be added before, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
var match = FlyCameraControllerAPI$Wonderjs.createFlyCameraController(state);
return GameObjectAPI$Wonderjs.addGameObjectFlyCameraControllerComponent(gameObject, match[1], match[0]);
})));
}));
return Wonder_jest.test("can get component's gameObject", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](FlyCameraControllerAPI$Wonderjs.unsafeGetFlyCameraControllerGameObject(GameObjectAPI$Wonderjs.unsafeGetGameObjectFlyCameraControllerComponent(gameObject, state), state)), gameObject);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectFlyCameraControllerComponent", (function (param) {
return Wonder_jest.test("get flyCameraController component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.unsafeGetGameObjectFlyCameraControllerComponent(match[1], match[0])), match[2]);
}));
}));
return Wonder_jest.describe("hasGameObjectFlyCameraControllerComponent", (function (param) {
return Wonder_jest.test("has flyCameraController component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectFlyCameraControllerComponent(match[1], match[0])), true);
}));
}));
}));
return Wonder_jest.describe("test arcballCameraController component", (function (param) {
var _prepare = function (param) {
var match = GameObjectAPI$Wonderjs.createGameObject(state[0]);
var gameObject = match[1];
var match$1 = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(match[0]);
var arcballCameraController = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectArcballCameraControllerComponent(gameObject, arcballCameraController, match$1[0]);
return /* tuple */[
state$1,
gameObject,
arcballCameraController
];
};
Wonder_jest.describe("addGameObjectArcballCameraControllerComponent", (function (param) {
Wonder_jest.test("if this type of component is already exist, error", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect this type of the component shouldn't be added before, but actual not", Wonder_jest.Expect[/* expect */0]((function (param) {
var match = ArcballCameraControllerAPI$Wonderjs.createArcballCameraController(state);
return GameObjectAPI$Wonderjs.addGameObjectArcballCameraControllerComponent(gameObject, match[1], match[0]);
})));
}));
return Wonder_jest.test("can get component's gameObject", (function (param) {
var match = _prepare(/* () */0);
var gameObject = match[1];
var state = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](ArcballCameraControllerAPI$Wonderjs.unsafeGetArcballCameraControllerGameObject(GameObjectAPI$Wonderjs.unsafeGetGameObjectArcballCameraControllerComponent(gameObject, state), state)), gameObject);
}));
}));
Wonder_jest.describe("unsafeGetGameObjectArcballCameraControllerComponent", (function (param) {
return Wonder_jest.test("get arcballCameraController component", (function (param) {
var match = _prepare(/* () */0);
return ArcballCameraControllerTool$Wonderjs.isArcballCameraController(GameObjectAPI$Wonderjs.unsafeGetGameObjectArcballCameraControllerComponent(match[1], match[0]));
}));
}));
return Wonder_jest.describe("hasGameObjectArcballCameraControllerComponent", (function (param) {
return Wonder_jest.test("has arcballCameraController component", (function (param) {
var match = _prepare(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.hasGameObjectArcballCameraControllerComponent(match[1], match[0])), true);
}));
}));
}));
}));
Wonder_jest.describe("getAllChildrenTransform", (function (param) {
return Wonder_jest.test("get all children' transform", (function (param) {
var match = GameObjectTool$Wonderjs.createGameObject(state[0]);
var gameObject1 = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var match$2 = GameObjectTool$Wonderjs.createGameObject(match$1[0]);
var gameObject2 = match$2[1];
var match$3 = GameObjectTool$Wonderjs.createGameObject(match$2[0]);
var state$1 = GameObjectTool$Wonderjs.addChild(gameObject2, match$3[1], GameObjectTool$Wonderjs.addChild(gameObject1, gameObject2, match$3[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.getAllChildrenTransform(gameObject1, state$1)), /* array */[
match$2[2],
match$3[2]
]);
}));
}));
Wonder_jest.describe("getAllGameObjects", (function (param) {
Wonder_jest.test("get itself and all children", (function (param) {
var match = GameObjectTool$Wonderjs.createGameObject(state[0]);
var gameObject1 = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var match$2 = GameObjectTool$Wonderjs.createGameObject(match$1[0]);
var gameObject2 = match$2[1];
var match$3 = GameObjectTool$Wonderjs.createGameObject(match$2[0]);
var gameObject3 = match$3[1];
var state$1 = GameObjectTool$Wonderjs.addChild(gameObject2, gameObject3, GameObjectTool$Wonderjs.addChild(gameObject1, gameObject2, match$3[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.getAllGameObjects(gameObject1, state$1)), /* array */[
gameObject1,
gameObject2,
gameObject3
]);
}));
return Wonder_jest.describe("fix bug", (function (param) {
return Wonder_jest.test("not sort transform children", (function (param) {
var match = GameObjectTool$Wonderjs.createGameObject(state[0]);
var match$1 = GameObjectTool$Wonderjs.createGameObject(match[0]);
var gameObject1 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var match$3 = GameObjectTool$Wonderjs.createGameObject(match$2[0]);
var state$1 = GameObjectTool$Wonderjs.addChild(gameObject1, match[1], GameObjectTool$Wonderjs.addChild(gameObject1, match$3[1], match$3[0]));
GameObjectAPI$Wonderjs.getAllGameObjects(gameObject1, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectTool$Wonderjs.getChildren(gameObject1, state$1).map((function (gameObject) {
return GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(gameObject, state$1);
}))), /* array */[
match$3[2],
match[2]
]);
}));
}));
}));
Wonder_jest.describe("test get all components", (function (param) {
var _createMaterialGameObjects = function (state) {
var match = LightMaterialTool$Wonderjs.createGameObject(state[0]);
var match$1 = BasicMaterialTool$Wonderjs.createGameObject(match[0]);
var match$2 = LightMaterialTool$Wonderjs.createGameObject(match$1[0]);
var match$3 = GeometryTool$Wonderjs.createGameObject(match$2[0]);
return /* tuple */[
match$3[0],
/* tuple */[
match[1],
match$1[1],
match$2[1],
match$3[1]
],
/* tuple */[
match[2],
match$1[2],
match$2[2]
],
match$3[2]
];
};
var _createCameraGameObjects = function (state) {
var match = CameraTool$Wonderjs.createCameraGameObject(state[0]);
var match$1 = match[3];
var match$2 = CameraTool$Wonderjs.createCameraGameObject(match[0]);
var match$3 = match$2[3];
var match$4 = LightMaterialTool$Wonderjs.createGameObject(match$2[0]);
var match$5 = GeometryTool$Wonderjs.createGameObject(match$4[0]);
return /* tuple */[
match$5[0],
/* tuple */[
match[1],
match$2[1],
match$4[1],
match$5[1]
],
/* tuple */[
match$1[0],
match$3[0]
],
/* tuple */[
match$1[1],
match$3[1]
],
match$4[2],
match$5[2]
];
};
var _createCameraControllerGameObjects = function (state) {
var match = ArcballCameraControllerTool$Wonderjs.createGameObject(state[0]);
var match$1 = ArcballCameraControllerTool$Wonderjs.createGameObject(match[0]);
var match$2 = FlyCameraControllerTool$Wonderjs.createGameObject(match$1[0]);
var match$3 = FlyCameraControllerTool$Wonderjs.createGameObject(match$2[0]);
return /* tuple */[
match$3[0],
/* tuple */[
match[1],
match$1[1],
match$2[1],
match$3[1]
],
/* tuple */[
match[3][0],
match$1[3][0],
match$2[3][0],
match$3[3][0]
]
];
};
var _createLightGameObjects = function (state) {
var match = DirectionLightTool$Wonderjs.createGameObject(state[0]);
var match$1 = DirectionLightTool$Wonderjs.createGameObject(match[0]);
var match$2 = PointLightTool$Wonderjs.createGameObject(match$1[0]);
var match$3 = GeometryTool$Wonderjs.createGameObject(match$2[0]);
return /* tuple */[
match$3[0],
/* tuple */[
match[1],
match$1[1],
match$2[1],
match$3[1]
],
/* tuple */[
match[2],
match$1[2],
match$2[2]
],
match$3[2]
];
};
var _createGeometryGameObjects = function (state) {
var match = GeometryTool$Wonderjs.createGameObject(state[0]);
var match$1 = GeometryTool$Wonderjs.createGameObject(match[0]);
var match$2 = BoxGeometryTool$Wonderjs.createGameObject(match$1[0]);
return /* tuple */[
match$2[0],
/* tuple */[
match[1],
match$1[1],
match$2[1]
],
/* tuple */[
match[2],
match$1[2],
match$2[2]
]
];
};
Wonder_jest.describe("test get all components of gameObject", (function (param) {
Wonder_jest.describe("getAllDirectionLightComponentsOfGameObject", (function (param) {
return Wonder_jest.test("test", (function (param) {
var match = _createLightGameObjects(state);
var match$1 = match[1];
var state$1 = SceneAPI$Wonderjs.addSceneChildren(/* array */[