@woosh/meep-engine 2.110.14 → 2.111.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/build/meep.cjs +442 -370
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +442 -370
  4. package/editor/tools/v2/BlenderCameraOrientationGizmo.js +4 -2
  5. package/package.json +4 -2
  6. package/src/core/events/signal/Signal.d.ts.map +1 -1
  7. package/src/core/events/signal/Signal.js +289 -255
  8. package/src/core/events/signal/SignalHandler.d.ts +7 -2
  9. package/src/core/events/signal/SignalHandler.d.ts.map +1 -1
  10. package/src/core/events/signal/SignalHandler.js +12 -6
  11. package/src/core/events/signal/signal_handler_list_find.d.ts +8 -0
  12. package/src/core/events/signal/signal_handler_list_find.d.ts.map +1 -0
  13. package/src/core/events/signal/signal_handler_list_find.js +23 -0
  14. package/src/core/events/signal/signal_handler_list_last.d.ts +7 -0
  15. package/src/core/events/signal/signal_handler_list_last.d.ts.map +1 -0
  16. package/src/core/events/signal/signal_handler_list_last.js +14 -0
  17. package/src/core/events/signal/signal_handler_list_validate.d.ts +8 -0
  18. package/src/core/events/signal/signal_handler_list_validate.d.ts.map +1 -0
  19. package/src/core/events/signal/signal_handler_list_validate.js +29 -0
  20. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts +2 -3
  21. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts.map +1 -1
  22. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +3 -3
  23. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  24. package/src/engine/graphics/ecs/camera/Camera.js +2 -2
  25. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
  26. package/src/engine/graphics/ecs/camera/CameraSystem.js +10 -2
  27. package/src/engine/graphics/ecs/camera/quaternion_invert_orientation.d.ts +7 -0
  28. package/src/engine/graphics/ecs/camera/quaternion_invert_orientation.d.ts.map +1 -0
  29. package/src/engine/graphics/ecs/camera/{InvertQuaternionOrientation.js → quaternion_invert_orientation.js} +6 -5
  30. package/editor/actions/concrete/ModifyPatchSampler2DAction.spec.js +0 -30
  31. package/src/core/IdPool.spec.js +0 -29
  32. package/src/core/UUID.spec.js +0 -8
  33. package/src/core/binary/32BitEncoder.spec.js +0 -11
  34. package/src/core/binary/Base64.spec.js +0 -14
  35. package/src/core/binary/BinaryBuffer.spec.js +0 -324
  36. package/src/core/binary/BitSet.spec.js +0 -468
  37. package/src/core/binary/EncodingBinaryBuffer.spec.js +0 -16
  38. package/src/core/binary/align_32.spec.js +0 -11
  39. package/src/core/binary/align_4.spec.js +0 -20
  40. package/src/core/binary/data_view/DataViewStructAccessor.spec.js +0 -20
  41. package/src/core/binary/de_interleave_2_bits.spec.js +0 -21
  42. package/src/core/binary/dec2hex.spec.js +0 -13
  43. package/src/core/binary/hex2dec.spec.js +0 -22
  44. package/src/core/binary/int32_to_binary_string.spec.js +0 -9
  45. package/src/core/binary/operations/bitCount.spec.js +0 -19
  46. package/src/core/binary/operations/ceilPowerOfTwo.spec.js +0 -17
  47. package/src/core/binary/reverse_bits_uint32.spec.js +0 -18
  48. package/src/core/binary/split_by_2.spec.js +0 -22
  49. package/src/core/binary/split_by_3.spec.js +0 -22
  50. package/src/core/binary/uint8_to_float.spec.js +0 -7
  51. package/src/core/bvh2/binary/2/BinaryUint32BVH.spec.js +0 -136
  52. package/src/core/bvh2/bvh3/BVH.spec.js +0 -361
  53. package/src/core/bvh2/bvh3/BvhClient.spec.js +0 -51
  54. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.spec.js +0 -60
  55. package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.spec.js +0 -22
  56. package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.spec.js +0 -64
  57. package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.spec.js +0 -29
  58. package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point.spec.js +0 -209
  59. package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.spec.js +0 -41
  60. package/src/core/cache/Cache.spec.js +0 -277
  61. package/src/core/cache/FrequencySketch.spec.js +0 -5
  62. package/src/core/cache/LoadingCache.spec.js +0 -120
  63. package/src/core/codegen/LineBuilder.spec.js +0 -41
  64. package/src/core/collection/CuckooFilter.spec.js +0 -111
  65. package/src/core/collection/RingBuffer.spec.js +0 -59
  66. package/src/core/collection/Stack.spec.js +0 -63
  67. package/src/core/collection/array/arrayPickBestElement.spec.js +0 -7
  68. package/src/core/collection/array/arraySetSortingDiff.spec.js +0 -74
  69. package/src/core/collection/array/array_contains_duplicates.spec.js +0 -14
  70. package/src/core/collection/array/array_copy.spec.js +0 -19
  71. package/src/core/collection/array/array_deduplicate.spec.js +0 -11
  72. package/src/core/collection/array/array_get_index_in_range.spec.js +0 -16
  73. package/src/core/collection/array/array_remove_first.spec.js +0 -39
  74. package/src/core/collection/array/array_shuffle.spec.js +0 -27
  75. package/src/core/collection/array/binarySearchHighIndex.spec.js +0 -51
  76. package/src/core/collection/array/isArrayEqual.spec.js +0 -25
  77. package/src/core/collection/array/typed/is_typed_array_equals.spec.js +0 -71
  78. package/src/core/collection/array/weightedRandomFromArray.spec.js +0 -22
  79. package/src/core/collection/heap/BinaryHeap.spec.js +0 -137
  80. package/src/core/collection/heap/Uint32Heap.spec.js +0 -172
  81. package/src/core/collection/list/List.spec.js +0 -438
  82. package/src/core/collection/list/ListForwarder.spec.js +0 -101
  83. package/src/core/collection/map/HashMap.spec.js +0 -291
  84. package/src/core/collection/queue/Deque.spec.js +0 -276
  85. package/src/core/collection/set/HashSet.spec.js +0 -39
  86. package/src/core/collection/set/compute_set_difference.spec.js +0 -45
  87. package/src/core/collection/set/compute_set_intersection.spec.js +0 -45
  88. package/src/core/collection/table/RowFirstTable.spec.js +0 -323
  89. package/src/core/collection/table/RowFirstTableSpec.spec.js +0 -49
  90. package/src/core/collection/table/bind/TableRecord.spec.js +0 -27
  91. package/src/core/color/Color.spec.js +0 -174
  92. package/src/core/color/YCbCr/YCbCr.spec.js +0 -16
  93. package/src/core/color/hex/hex2rgb.spec.js +0 -10
  94. package/src/core/color/hex/rgb2hex.spec.js +0 -13
  95. package/src/core/color/hsv/hsv2rgb.spec.js +0 -43
  96. package/src/core/color/kelvin/kelvin_to_rgb.spec.js +0 -61
  97. package/src/core/color/kelvin/rgb_to_kelvin.spec.js +0 -15
  98. package/src/core/color/oklab/Okhsv.spec.js +0 -17
  99. package/src/core/color/oklab/XYZ.spec.js +0 -17
  100. package/src/core/color/oklab/oklab_to_xyz.spec.js +0 -31
  101. package/src/core/color/oklab/xyz_to_oklab.spec.js +0 -31
  102. package/src/core/color/parse_color.spec.js +0 -18
  103. package/src/core/color/sRGB/sRGB.spec.js +0 -16
  104. package/src/core/color/xyz/XYZ.spec.js +0 -16
  105. package/src/core/events/signal/Signal.spec.js +0 -253
  106. package/src/core/events/signal/SignalBinding.spec.js +0 -58
  107. package/src/core/fsm/simple/SimpleStateMachine.spec.js +0 -107
  108. package/src/core/fsm/simple/SimpleStateMachineDescription.spec.js +0 -103
  109. package/src/core/function/extractFunctionBody.spec.js +0 -15
  110. package/src/core/geom/2d/Rectangle.spec.js +0 -62
  111. package/src/core/geom/2d/aabb/AABB2.spec.js +0 -153
  112. package/src/core/geom/2d/aabb/aabb2_compute_center_from_multiple.spec.js +0 -11
  113. package/src/core/geom/2d/aabb/aabb2_compute_overlap.spec.js +0 -56
  114. package/src/core/geom/2d/aabb/aabb2_contains.spec.js +0 -40
  115. package/src/core/geom/2d/aabb/aabb2_distance_to_point.spec.js +0 -17
  116. package/src/core/geom/2d/aabb/aabb2_intersects_ray.spec.js +0 -28
  117. package/src/core/geom/2d/aabb/aabb2_signed_distance_sqr_to_point.spec.js +0 -40
  118. package/src/core/geom/2d/bvh/BVH2D.spec.js +0 -359
  119. package/src/core/geom/2d/bvh/bvh2d_query_all_data_by_circle.spec.js +0 -89
  120. package/src/core/geom/2d/circle/circle_compute_circle_intersection.spec.js +0 -79
  121. package/src/core/geom/2d/compute_polygon_area_2d.spec.js +0 -10
  122. package/src/core/geom/2d/compute_triangle_area_2d.spec.js +0 -9
  123. package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.spec.js +0 -33
  124. package/src/core/geom/2d/convex-hull/convex_hull_monotone_2d.spec.js +0 -33
  125. package/src/core/geom/2d/hash-grid/SpatialHashGrid.spec.js +0 -254
  126. package/src/core/geom/2d/hash-grid/shg_query_elements_circle.spec.js +0 -85
  127. package/src/core/geom/2d/hash-grid/shg_query_elements_line.spec.js +0 -102
  128. package/src/core/geom/2d/quad-tree/QuadTreeNode.spec.js +0 -235
  129. package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.spec.js +0 -86
  130. package/src/core/geom/2d/quad-tree-binary/QuadTree.spec.js +0 -53
  131. package/src/core/geom/2d/r-tree/StaticR2Tree.spec.js +0 -62
  132. package/src/core/geom/2d/spline_bezier2_2d.spec.js +0 -16
  133. package/src/core/geom/2d/uv_map_circle_to_square.spec.js +0 -28
  134. package/src/core/geom/2d/uv_map_square_to_circle.spec.js +0 -30
  135. package/src/core/geom/3d/SurfacePoint3.spec.js +0 -116
  136. package/src/core/geom/3d/aabb/AABB3.spec.js +0 -257
  137. package/src/core/geom/3d/aabb/aabb3_array_intersects_point.spec.js +0 -48
  138. package/src/core/geom/3d/aabb/aabb3_build_corners.spec.js +0 -27
  139. package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_max.spec.js +0 -8
  140. package/src/core/geom/3d/aabb/aabb3_compute_plane_side.spec.js +0 -25
  141. package/src/core/geom/3d/aabb/aabb3_corner_edge_mapping.spec.js +0 -39
  142. package/src/core/geom/3d/aabb/aabb3_edge_corner_mapping.spec.js +0 -32
  143. package/src/core/geom/3d/aabb/aabb3_expand_array.spec.js +0 -16
  144. package/src/core/geom/3d/aabb/aabb3_from_v3_array.spec.js +0 -32
  145. package/src/core/geom/3d/aabb/aabb3_intersects_aabb3.spec.js +0 -115
  146. package/src/core/geom/3d/aabb/aabb3_intersects_ray.spec.js +0 -161
  147. package/src/core/geom/3d/aabb/aabb3_matrix4_project.spec.js +0 -54
  148. package/src/core/geom/3d/aabb/aabb3_raycast.spec.js +0 -37
  149. package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH.spec.js +0 -14
  150. package/src/core/geom/3d/cone/computeConePlaneSide.spec.js +0 -13
  151. package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.spec.js +0 -95
  152. package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.spec.js +0 -61
  153. package/src/core/geom/3d/mat4/MATRIX_4_IDENTITY.spec.js +0 -10
  154. package/src/core/geom/3d/mat4/m4_multiply.spec.js +0 -34
  155. package/src/core/geom/3d/mat4/m4_multiply_alphatensor.spec.js +0 -35
  156. package/src/core/geom/3d/morton/v3_morton_encode_transformed.spec.js +0 -20
  157. package/src/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +0 -41
  158. package/src/core/geom/3d/normal/octahedron/encoding.spec.js +0 -54
  159. package/src/core/geom/3d/plane/plane3_projectPoint.spec.js +0 -54
  160. package/src/core/geom/3d/plane/plane3_slerp.spec.js +0 -209
  161. package/src/core/geom/3d/ray/ray3_array_compose.spec.js +0 -14
  162. package/src/core/geom/3d/shape/TransformedShape3D.spec.js +0 -55
  163. package/src/core/geom/3d/shape/UnitCubeShape3D.spec.js +0 -42
  164. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.spec.js +0 -53
  165. package/src/core/geom/3d/sphere/harmonics/sh3_vector_accumulate.spec.js +0 -27
  166. package/src/core/geom/3d/sphere/sphere_intersects_point.spec.js +0 -134
  167. package/src/core/geom/3d/sphere/sphere_intersects_ray.spec.js +0 -60
  168. package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.spec.js +0 -8
  169. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +0 -233
  170. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +0 -66
  171. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +0 -36
  172. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.js +0 -61
  173. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.spec.js +0 -30
  174. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.spec.js +0 -24
  175. package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.spec.js +0 -66
  176. package/src/core/geom/3d/topology/simplify/collapseEdge.spec.js +0 -24
  177. package/src/core/geom/3d/topology/struct/TopoEdge.spec.js +0 -52
  178. package/src/core/geom/3d/topology/struct/TopoVertex.spec.js +0 -128
  179. package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.spec.js +0 -36
  180. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.spec.js +0 -16
  181. package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.spec.js +0 -84
  182. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.spec.js +0 -15
  183. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.spec.js +0 -16
  184. package/src/core/geom/3d/triangle/computeTriangleClosestPointToPointBarycentric.spec.js +0 -100
  185. package/src/core/geom/3d/triangle/computeTriangleRayIntersection.spec.js +0 -25
  186. package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentric.spec.js +0 -26
  187. package/src/core/geom/3d/v3_compute_triangle_normal.spec.js +0 -46
  188. package/src/core/geom/ConicRay.spec.js +0 -24
  189. package/src/core/geom/Quaternion.spec.js +0 -429
  190. package/src/core/geom/Vector1.spec.js +0 -74
  191. package/src/core/geom/Vector2.spec.js +0 -295
  192. package/src/core/geom/Vector3.spec.js +0 -285
  193. package/src/core/geom/Vector4.spec.js +0 -11
  194. package/src/core/geom/normalize_angle_rad.spec.js +0 -45
  195. package/src/core/geom/packing/computeBoundingSphereOfSpheres.spec.js +0 -24
  196. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.spec.js +0 -60
  197. package/src/core/geom/packing/miniball/Miniball.spec.js +0 -35
  198. package/src/core/geom/packing/miniball/Subspan.spec.js +0 -51
  199. package/src/core/geom/random/randomPointOnBox.spec.js +0 -57
  200. package/src/core/geom/vec/vector_normalize.spec.js +0 -15
  201. package/src/core/geom/vec3/v3_angle_cos_between.spec.js +0 -124
  202. package/src/core/geom/vec3/v3_displace_in_direction.spec.js +0 -80
  203. package/src/core/geom/vec3/v3_distance_above_plane.spec.js +0 -40
  204. package/src/core/graph/Edge.spec.js +0 -85
  205. package/src/core/graph/SquareMatrix.spec.js +0 -102
  206. package/src/core/graph/coloring/colorizeGraphGreedy.spec.js +0 -26
  207. package/src/core/graph/convert_graph_to_dot_string.spec.js +0 -28
  208. package/src/core/graph/eigen/matrix_eigenvalues_in_place.spec.js +0 -57
  209. package/src/core/graph/graph_k_means_cluster.spec.js +0 -23
  210. package/src/core/graph/mn_graph_coarsen.spec.js +0 -45
  211. package/src/core/graph/v2/Graph.spec.js +0 -364
  212. package/src/core/json/resolvePath.spec.js +0 -14
  213. package/src/core/lang/reactive/compileReactiveExpression.spec.js +0 -169
  214. package/src/core/math/bessel_j0.spec.js +0 -43
  215. package/src/core/math/clamp.spec.js +0 -15
  216. package/src/core/math/computeGreatestCommonDivisor.spec.js +0 -9
  217. package/src/core/math/computeIsoscelesTriangleApexAngle.spec.js +0 -6
  218. package/src/core/math/computeWholeDivisorLow.spec.js +0 -9
  219. package/src/core/math/copysign.spec.js +0 -13
  220. package/src/core/math/epsilonEquals.spec.js +0 -17
  221. package/src/core/math/factorial.spec.js +0 -9
  222. package/src/core/math/fract.spec.js +0 -11
  223. package/src/core/math/hash/computeHashFloatArray.spec.js +0 -11
  224. package/src/core/math/hash/computeObjectHash.spec.js +0 -42
  225. package/src/core/math/hash/murmur3_32.spec.js +0 -8
  226. package/src/core/math/hash/squirrel3.spec.js +0 -16
  227. package/src/core/math/iabs.spec.js +0 -9
  228. package/src/core/math/interval/NumericInterval.spec.js +0 -89
  229. package/src/core/math/interval/isValueBetween.spec.js +0 -11
  230. package/src/core/math/interval/isValueBetweenInclusive.spec.js +0 -16
  231. package/src/core/math/interval/overlap1D.spec.js +0 -10
  232. package/src/core/math/inverseLerp.spec.js +0 -13
  233. package/src/core/math/isPowerOfTwo.spec.js +0 -9
  234. package/src/core/math/isqrt.spec.js +0 -9
  235. package/src/core/math/lerp.spec.js +0 -15
  236. package/src/core/math/linalg/solve_linear_system.spec.js +0 -70
  237. package/src/core/math/max.spec.js +0 -25
  238. package/src/core/math/max2.spec.js +0 -13
  239. package/src/core/math/max3.spec.js +0 -29
  240. package/src/core/math/min2.spec.js +0 -37
  241. package/src/core/math/min3.spec.js +0 -29
  242. package/src/core/math/newton_solver_1d.spec.js +0 -9
  243. package/src/core/math/nextOdd.spec.js +0 -9
  244. package/src/core/math/noise/create_simplex_noise_2d.spec.js +0 -21
  245. package/src/core/math/noise/sdnoise.spec.js +0 -87
  246. package/src/core/math/physics/irradiance/interpolate_irradiance_linear.spec.js +0 -20
  247. package/src/core/math/physics/irradiance/interpolate_irradiance_lograrithmic.spec.js +0 -18
  248. package/src/core/math/physics/irradiance/interpolate_irradiance_smith.spec.js +0 -20
  249. package/src/core/math/pingpong.spec.js +0 -11
  250. package/src/core/math/random/MersenneTwister.spec.js +0 -19
  251. package/src/core/math/random/randomFloatBetween.spec.js +0 -9
  252. package/src/core/math/random/randomGaussian.spec.js +0 -9
  253. package/src/core/math/random/randomIntegerBetween.spec.js +0 -8
  254. package/src/core/math/random/roundFair.spec.js +0 -12
  255. package/src/core/math/random/seededRandomMersenneTwister.spec.js +0 -10
  256. package/src/core/math/random/seededRandom_Mulberry32.spec.js +0 -19
  257. package/src/core/math/remap.spec.js +0 -15
  258. package/src/core/math/sign.spec.js +0 -13
  259. package/src/core/math/smoothStep.spec.js +0 -16
  260. package/src/core/math/smootherStep.spec.js +0 -16
  261. package/src/core/math/solveQuadratic.spec.js +0 -18
  262. package/src/core/math/spline/cubicCurve.spec.js +0 -13
  263. package/src/core/math/spline/makeCubicCurve.spec.js +0 -9
  264. package/src/core/math/spline/spline_bezier2.spec.js +0 -13
  265. package/src/core/math/spline/spline_bezier3_bounds.spec.js +0 -37
  266. package/src/core/math/spline/spline_hermite3.spec.js +0 -18
  267. package/src/core/math/spline/spline_hermite3_bounds.spec.js +0 -37
  268. package/src/core/math/statistics/computeSampleSize_Cochran.spec.js +0 -12
  269. package/src/core/math/statistics/computeStatisticalMean.spec.js +0 -9
  270. package/src/core/math/statistics/computeStatisticalPartialMedian.spec.js +0 -13
  271. package/src/core/math/statistics/computeStatisticalPercentile.spec.js +0 -11
  272. package/src/core/math/statistics/computeStatisticalVariance.spec.js +0 -10
  273. package/src/core/math/statistics/halton_sequence.spec.js +0 -40
  274. package/src/core/math/statistics/radical_inverse_VdC_base_2.spec.js +0 -9
  275. package/src/core/math/statistics/softmax.spec.js +0 -9
  276. package/src/core/model/BooleanVector3.spec.js +0 -51
  277. package/src/core/model/BoundedValue.spec.js +0 -17
  278. package/src/core/model/ModuleRegistry.spec.js +0 -31
  279. package/src/core/model/ObservedBoolean.spec.js +0 -81
  280. package/src/core/model/ObservedInteger.spec.js +0 -51
  281. package/src/core/model/node-graph/Connection.spec.js +0 -33
  282. package/src/core/model/node-graph/NodeGraph.spec.js +0 -107
  283. package/src/core/model/node-graph/node/NodeDescription.spec.js +0 -81
  284. package/src/core/model/node-graph/node/NodeInstance.spec.js +0 -82
  285. package/src/core/model/node-graph/node/NodeInstancePortReference.spec.js +0 -109
  286. package/src/core/model/node-graph/node/NodeRegistry.spec.js +0 -123
  287. package/src/core/model/node-graph/node/Port.spec.js +0 -102
  288. package/src/core/model/node-graph/type/DataType.spec.js +0 -47
  289. package/src/core/model/node-graph/type/ParametricDataType.spec.js +0 -63
  290. package/src/core/model/node-graph/visual/PortVisualData.spec.js +0 -16
  291. package/src/core/model/object/ObjectPoolFactory.spec.js +0 -54
  292. package/src/core/model/object/objectDeepEquals.spec.js +0 -54
  293. package/src/core/model/object/write_property.spec.js +0 -26
  294. package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.spec.js +0 -158
  295. package/src/core/model/reactive/js/compileReactiveToJS.spec.js +0 -14
  296. package/src/core/model/reactive/model/logic/ReactiveAnd.spec.js +0 -51
  297. package/src/core/model/reactive/model/logic/ReactiveOr.spec.js +0 -53
  298. package/src/core/model/reactive/model/terminal/ReactiveReference.spec.js +0 -26
  299. package/src/core/model/reactive/trigger/BlackboardTrigger.spec.js +0 -24
  300. package/src/core/model/reactive/trigger/ReactiveTrigger.spec.js +0 -5
  301. package/src/core/model/stat/LinearModifier.spec.js +0 -96
  302. package/src/core/model/stat/Stat.spec.js +0 -111
  303. package/src/core/parser/simple/readHexToken.spec.js +0 -21
  304. package/src/core/parser/simple/readIdentifierToken.spec.js +0 -32
  305. package/src/core/parser/simple/readNumberToken.spec.js +0 -17
  306. package/src/core/parser/simple/readReferenceToken.spec.js +0 -18
  307. package/src/core/parser/simple/readStringToken.spec.js +0 -57
  308. package/src/core/parser/simple/readUnsignedIntegerToken.spec.js +0 -6
  309. package/src/core/path/computeFileExtension.spec.js +0 -13
  310. package/src/core/path/computePathBase.spec.js +0 -13
  311. package/src/core/path/computePathDirectory.spec.js +0 -8
  312. package/src/core/primitives/array/computeStridedIntegerArrayHash.spec.js +0 -28
  313. package/src/core/primitives/numbers/computeHashFloat.spec.js +0 -14
  314. package/src/core/primitives/numbers/number_compare_ascending.spec.js +0 -9
  315. package/src/core/primitives/numbers/number_compare_descending.spec.js +0 -9
  316. package/src/core/primitives/numbers/number_format_by_thousands.spec.js +0 -12
  317. package/src/core/primitives/numbers/number_pretty_print.spec.js +0 -19
  318. package/src/core/primitives/strings/compareStrings.spec.js +0 -12
  319. package/src/core/primitives/strings/computeStringHash.spec.js +0 -20
  320. package/src/core/primitives/strings/insert_after.spec.js +0 -16
  321. package/src/core/primitives/strings/insert_before.spec.js +0 -16
  322. package/src/core/primitives/strings/string_capitalize.spec.js +0 -13
  323. package/src/core/primitives/strings/string_compute_common_prefix.spec.js +0 -23
  324. package/src/core/primitives/strings/string_format_camel_to_kebab.spec.js +0 -8
  325. package/src/core/primitives/strings/string_jaro_winkler.spec.js +0 -39
  326. package/src/core/primitives/strings/string_strip_trailing.spec.js +0 -27
  327. package/src/core/process/PromiseWatcher.spec.js +0 -69
  328. package/src/core/process/executor/ConcurrentExecutor.spec.js +0 -135
  329. package/src/core/process/task/util/actionTask.spec.js +0 -14
  330. package/src/core/process/task/util/countTask.spec.js +0 -18
  331. package/src/core/process/undo/ActionProcessor.spec.js +0 -64
  332. package/src/engine/Clock.spec.js +0 -26
  333. package/src/engine/Engine.spec.js +0 -15
  334. package/src/engine/achievements/Achievement.spec.js +0 -21
  335. package/src/engine/animation/curve/AnimationCurve.spec.js +0 -248
  336. package/src/engine/animation/curve/Keyframe.spec.js +0 -42
  337. package/src/engine/animation/curve/animation_curve_optimize.spec.js +0 -50
  338. package/src/engine/animation/curve/compression/downsample_float_array_curve_by_error.spec.js +0 -47
  339. package/src/engine/animation/curve/compression/sample_animation_curve_to_float_array.spec.js +0 -29
  340. package/src/engine/animation/keyed2/AnimationTrackPlayback.spec.js +0 -94
  341. package/src/engine/asset/AssetDescription.spec.js +0 -27
  342. package/src/engine/asset/AssetManager.spec.js +0 -50
  343. package/src/engine/asset/loaders/image/png/PNG.spec.js +0 -5
  344. package/src/engine/asset/loaders/image/png/PNGReader.spec.js +0 -5
  345. package/src/engine/asset/loaders/image/png/crc.spec.js +0 -15
  346. package/src/engine/control/ControlContext.spec.js +0 -81
  347. package/src/engine/ecs/Entity.spec.js +0 -188
  348. package/src/engine/ecs/EntityBlueprint.spec.js +0 -52
  349. package/src/engine/ecs/EntityComponentDataset.spec.js +0 -895
  350. package/src/engine/ecs/EntityManager.spec.js +0 -210
  351. package/src/engine/ecs/EntityObserver.spec.js +0 -184
  352. package/src/engine/ecs/animation/Animation.spec.js +0 -22
  353. package/src/engine/ecs/animation/AnimationClip.spec.js +0 -5
  354. package/src/engine/ecs/components/Tag.spec.js +0 -47
  355. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.spec.js +0 -126
  356. package/src/engine/ecs/fow/FogOfWar.spec.js +0 -13
  357. package/src/engine/ecs/guid/UUID.spec.js +0 -100
  358. package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.js +0 -21
  359. package/src/engine/ecs/parent/EntityNode.spec.js +0 -104
  360. package/src/engine/ecs/renderable/Renderable.spec.js +0 -10
  361. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.spec.js +0 -139
  362. package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerialization.spec.js +0 -259
  363. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.spec.js +0 -59
  364. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.spec.js +0 -123
  365. package/src/engine/ecs/terrain/ecs/Terrain.spec.js +0 -5
  366. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.spec.js +0 -38
  367. package/src/engine/ecs/terrain/overlay/TerrainOverlay.spec.js +0 -6
  368. package/src/engine/ecs/terrain/tiles/TerrainTile.spec.js +0 -25
  369. package/src/engine/ecs/tooltip/TooltipComponent.spec.js +0 -47
  370. package/src/engine/ecs/transform/Transform.spec.js +0 -310
  371. package/src/engine/ecs/transform/TransformSerializationAdapter.spec.js +0 -28
  372. package/src/engine/ecs/transform-attachment/TransformAttachment.spec.js +0 -103
  373. package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraph.spec.js +0 -5
  374. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.spec.js +0 -5
  375. package/src/engine/graphics/ecs/camera/InvertQuaternionOrientation.d.ts +0 -7
  376. package/src/engine/graphics/ecs/camera/InvertQuaternionOrientation.d.ts.map +0 -1
  377. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.spec.js +0 -94
  378. package/src/engine/graphics/ecs/decal/v2/Decal.spec.js +0 -5
  379. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.spec.js +0 -19
  380. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.spec.js +0 -5
  381. package/src/engine/graphics/ecs/mesh-v2/render/adapters/SGCacheKey.spec.js +0 -79
  382. package/src/engine/graphics/ecs/path/tube/TubePathStyle.spec.js +0 -5
  383. package/src/engine/graphics/ecs/path/tube/build/build_geometry_catmullrom.spec.js +0 -32
  384. package/src/engine/graphics/geometry/MikkT/MikkTSpace.spec.js +0 -28
  385. package/src/engine/graphics/geometry/bvh/buffered/bvh32_from_unindexed_geometry.spec.js +0 -22
  386. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.spec.js +0 -70
  387. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.spec.js +0 -47
  388. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.spec.js +0 -100
  389. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +0 -225
  390. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.spec.js +0 -215
  391. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.spec.js +0 -75
  392. package/src/engine/graphics/particles/particular/group/ParticleGroup.spec.js +0 -270
  393. package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.spec.js +0 -21
  394. package/src/engine/graphics/render/forward_plus/LightManager.spec.js +0 -94
  395. package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.spec.js +0 -79
  396. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.spec.js +0 -102
  397. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.spec.js +0 -78
  398. package/src/engine/graphics/texture/atlas/TextureAtlas.spec.js +0 -319
  399. package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.spec.js +0 -99
  400. package/src/engine/graphics/texture/sampler/Sampler2D.spec.js +0 -224
  401. package/src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.spec.js +0 -90
  402. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.spec.js +0 -183
  403. package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField.spec.js +0 -183
  404. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale.spec.js +0 -73
  405. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.spec.js +0 -31
  406. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_linear.spec.js +0 -44
  407. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_mipmap.spec.js +0 -13
  408. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_up_linear.spec.js +0 -14
  409. package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_max.spec.js +0 -40
  410. package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_min_indices.spec.js +0 -15
  411. package/src/engine/graphics/texture/sampler/sampler2d_copy_with_margins.spec.js +0 -31
  412. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.spec.js +0 -10
  413. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.spec.js +0 -52
  414. package/src/engine/graphics/texture/sampler/serialization/TextureBinaryBufferSerializer.spec.js +0 -38
  415. package/src/engine/graphics/three/expand_aabb_by_transformed_three_object.spec.js +0 -108
  416. package/src/engine/graphics/trail/x/RibbonX.spec.js +0 -5
  417. package/src/engine/grid/obstacle/GridObstacle.spec.js +0 -175
  418. package/src/engine/input/devices/InputDeviceSwitch.spec.js +0 -5
  419. package/src/engine/input/devices/KeyboardDevice.spec.js +0 -12
  420. package/src/engine/input/devices/PointerDevice.spec.js +0 -12
  421. package/src/engine/intelligence/behavior/Behavior.spec.js +0 -15
  422. package/src/engine/intelligence/behavior/SelectorBehavior.spec.js +0 -18
  423. package/src/engine/intelligence/behavior/behavior_to_dot.spec.js +0 -25
  424. package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +0 -166
  425. package/src/engine/intelligence/behavior/composite/SequenceBehavior.spec.js +0 -17
  426. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.spec.js +0 -32
  427. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.spec.js +0 -75
  428. package/src/engine/intelligence/behavior/util/ConditionBehavior.spec.js +0 -24
  429. package/src/engine/intelligence/blackboard/Blackboard.spec.js +0 -111
  430. package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.spec.js +0 -30
  431. package/src/engine/intelligence/blackboard/make_blackboard_proxy.spec.js +0 -23
  432. package/src/engine/intelligence/mcts/MonteCarlo.spec.js +0 -244
  433. package/src/engine/intelligence/mcts/StateNode.spec.js +0 -49
  434. package/src/engine/intelligence/optimization/RandomOptimizer.spec.js +0 -57
  435. package/src/engine/intelligence/resource/ResourceAllocationSolver.spec.js +0 -104
  436. package/src/engine/intelligence/resource/StrategicResourceAllocator.spec.js +0 -46
  437. package/src/engine/knowledge/database/StaticKnowledgeDataTable.spec.js +0 -26
  438. package/src/engine/knowledge/database/StaticKnowledgeDatabase.spec.js +0 -23
  439. package/src/engine/navigation/ecs/components/Path.spec.js +0 -195
  440. package/src/engine/navigation/ecs/path_following/PathFollower.spec.js +0 -27
  441. package/src/engine/navigation/grid/find_path_on_grid_astar.spec.js +0 -87
  442. package/src/engine/notify/NotificationLog.spec.js +0 -17
  443. package/src/engine/options/Option.spec.js +0 -69
  444. package/src/engine/options/OptionGroup.spec.js +0 -61
  445. package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.js +0 -46
  446. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.js +0 -43
  447. package/src/engine/plugin/EnginePlugin.spec.js +0 -5
  448. package/src/engine/reference/v2/Reference.spec.js +0 -44
  449. package/src/engine/scene/Scene.spec.js +0 -20
  450. package/src/engine/scene/SceneManager.spec.js +0 -131
  451. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.spec.js +0 -49
  452. package/src/engine/ui/tiles2d/TileGrid.spec.js +0 -20
  453. package/src/engine/ui/tiles2d/computeTileGridMove.spec.js +0 -54
  454. package/src/generation/automata/CaveGeneratorCellularAutomata.spec.js +0 -12
  455. package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.spec.js +0 -30
  456. package/src/generation/filtering/numeric/complex/CellFilterGaussianBlur.spec.js +0 -17
  457. package/src/generation/filtering/numeric/process/computeCellFilterGradient.spec.js +0 -288
  458. package/src/generation/grid/GridData.spec.js +0 -46
  459. package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.spec.js +0 -116
  460. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.spec.js +0 -106
  461. package/src/generation/placement/action/GridCellActionPlaceTags.spec.js +0 -21
  462. package/src/generation/rules/CellMatcherLayerBitMaskTest.spec.js +0 -22
  463. package/src/generation/rules/cell/GridPatternMatcher.spec.js +0 -285
  464. package/src/generation/theme/ThemeEngine.spec.js +0 -7
  465. package/src/view/tooltip/gml/TooltipParser.spec.js +0 -142
@@ -1,50 +0,0 @@
1
- import { animation_curve_optimize } from "./animation_curve_optimize.js";
2
- import { AnimationCurve } from "./AnimationCurve.js";
3
- import { Keyframe } from "./Keyframe.js";
4
-
5
- test("single key", () => {
6
-
7
- const curve = AnimationCurve.from([
8
- Keyframe.from(1, -2, 3, -5)
9
- ]);
10
-
11
- animation_curve_optimize(curve);
12
-
13
- expect(curve.keys.length).toBe(1);
14
- });
15
-
16
- test("repeated key", () => {
17
-
18
- const curve = AnimationCurve.from([
19
- Keyframe.from(1, -2, 3, -5),
20
- Keyframe.from(1, -2, 3, -5),
21
- Keyframe.from(1, -2, 3, -5)
22
- ]);
23
-
24
- animation_curve_optimize(curve);
25
-
26
- expect(curve.equals(
27
- AnimationCurve.from([
28
- Keyframe.from(1, -2, 3, -5)
29
- ])
30
- )).toBe(true);
31
- });
32
-
33
- test("linear curve", () => {
34
-
35
- const curve = AnimationCurve.from([
36
- Keyframe.from(0, 0, 1, 1),
37
- Keyframe.from(1, 1, 1, 1),
38
- Keyframe.from(2, 2, 1, 1),
39
- ])
40
-
41
- animation_curve_optimize(curve);
42
-
43
- expect(curve.equals(
44
- AnimationCurve.from([
45
- Keyframe.from(0, 0, 1, 1),
46
- Keyframe.from(2, 2, 1, 1)
47
- ])
48
- )).toBe(true);
49
-
50
- });
@@ -1,47 +0,0 @@
1
- import { downsample_float_array_curve_by_error } from "./downsample_float_array_curve_by_error.js";
2
-
3
- test('1 constant to 1', () => {
4
- const output = [];
5
-
6
- const sample_count = downsample_float_array_curve_by_error(output, 0, [1], 0, 1, 0.1);
7
-
8
- expect(sample_count).toBe(1);
9
- expect(output[0]).toBe(1);
10
- });
11
-
12
- test('4 constants to 1', () => {
13
- const output = [];
14
-
15
- const sample_count = downsample_float_array_curve_by_error(output, 0, [1, 1, 1, 1], 0, 4, 0.1);
16
-
17
- expect(sample_count).toBe(1);
18
- expect(output[0]).toBe(1);
19
- });
20
-
21
- test('2 constants to 1 with error = 0', () => {
22
- const output = [];
23
-
24
- const sample_count = downsample_float_array_curve_by_error(output, 0, [1, 1], 0, 2, 0);
25
-
26
- expect(sample_count).toBe(1);
27
- expect(output[0]).toBe(1);
28
- });
29
-
30
- test('2 different constants to 2', () => {
31
- const output = [];
32
-
33
- const sample_count = downsample_float_array_curve_by_error(output, 0, [1, 2], 0, 2, 0.1);
34
-
35
- expect(sample_count).toBe(2);
36
- expect(output).toEqual([1, 2]);
37
- });
38
-
39
- test('4 to 2, linear scale compression', () => {
40
- const output = [];
41
-
42
- const sample_count = downsample_float_array_curve_by_error(output, 0, [1, 2, 3, 4], 0, 4, 0.1);
43
-
44
- expect(sample_count).toBe(2);
45
- expect(output[0]).toBeCloseTo(1);
46
- expect(output[1]).toBeCloseTo(4);
47
- });
@@ -1,29 +0,0 @@
1
- import { AnimationCurve } from "../AnimationCurve.js";
2
- import { sample_animation_curve_to_float_array } from "./sample_animation_curve_to_float_array.js";
3
- import { Keyframe } from "../Keyframe.js";
4
-
5
- test("0 samples should produce valid result", () => {
6
-
7
- const curve = new AnimationCurve();
8
-
9
- const result = new Float32Array(0);
10
-
11
- expect(() => sample_animation_curve_to_float_array(result, 0, curve, 0)).not.toThrow();
12
- });
13
-
14
- test("3 samples on a line", () => {
15
-
16
-
17
- const curve = new AnimationCurve();
18
- curve.add(Keyframe.from(-1, -1))
19
- curve.add(Keyframe.from(1, 7))
20
-
21
- curve.smoothAllTangents();
22
-
23
- const result = new Float32Array(3);
24
- sample_animation_curve_to_float_array(result, 0, curve, 3);
25
-
26
- expect(result[0]).toBeCloseTo(-1);
27
- expect(result[1]).toBeCloseTo(3);
28
- expect(result[2]).toBeCloseTo(7);
29
- });
@@ -1,94 +0,0 @@
1
- import AnimationTrack from "./AnimationTrack.js";
2
- import AnimationTrackPlayback from "./AnimationTrackPlayback.js";
3
- import TransitionFunctions from "../TransitionFunctions.js";
4
- import { jest } from '@jest/globals';
5
-
6
- function makeSingleKeyTrack() {
7
- const t = new AnimationTrack(["a"]);
8
-
9
- t.addKey(0, [7]);
10
-
11
- return t;
12
- }
13
-
14
- function makeTwoKeyTransitionTrack() {
15
- const t = new AnimationTrack(["a"]);
16
-
17
- t.addKey(0, [5]);
18
- t.addKey(1, [3]);
19
-
20
- t.addTransition(0, TransitionFunctions.Linear);
21
-
22
- return t;
23
- }
24
-
25
-
26
- test("calling advance(0) twice results in no change", () => {
27
- const t = makeTwoKeyTransitionTrack();
28
- const updateCallback = jest.fn();
29
-
30
- const playback = new AnimationTrackPlayback(t, updateCallback, null);
31
-
32
- expect(playback.position).toBe(0);
33
-
34
- playback.advance(0);
35
-
36
- expect(updateCallback).toHaveBeenCalledTimes(1);
37
- expect(updateCallback).toHaveBeenLastCalledWith(5);
38
- expect(playback.position).toBe(0);
39
-
40
- playback.advance(0);
41
-
42
- expect(updateCallback).toHaveBeenCalledTimes(2);
43
- expect(updateCallback).toHaveBeenLastCalledWith(5);
44
- expect(playback.position).toBe(0);
45
- });
46
-
47
- test("calling advance(0) results in no change", () => {
48
- const t = makeTwoKeyTransitionTrack();
49
- const updateCallback = jest.fn();
50
-
51
- const playback = new AnimationTrackPlayback(t, updateCallback, null);
52
-
53
- expect(playback.position).toBe(0);
54
-
55
- playback.advance(0);
56
-
57
- expect(playback.position).toBe(0);
58
- expect(updateCallback).toHaveBeenCalledTimes(1);
59
- expect(updateCallback).toHaveBeenLastCalledWith(5);
60
- });
61
-
62
- test("advancing past last key results in last key being held", () => {
63
-
64
- const t = makeTwoKeyTransitionTrack();
65
- const updateCallback = jest.fn();
66
-
67
- const playback = new AnimationTrackPlayback(t, updateCallback, null);
68
-
69
- playback.advance(2);
70
-
71
- expect(updateCallback).toHaveBeenLastCalledWith(3);
72
- });
73
-
74
- test("playback starts at position 0 by default", () => {
75
- const t = makeSingleKeyTrack();
76
- const updateCallback = jest.fn();
77
-
78
- const playback = new AnimationTrackPlayback(t, updateCallback, null);
79
-
80
- expect(playback.position).toBe(0);
81
- });
82
-
83
- test("single static key playback works", () => {
84
- const t = makeSingleKeyTrack();
85
-
86
- const updateCallback = jest.fn();
87
-
88
- const playback = new AnimationTrackPlayback(t, updateCallback, null);
89
-
90
- playback.advance(1);
91
-
92
- expect(updateCallback).toHaveBeenCalledTimes(1);
93
- expect(updateCallback).toHaveBeenLastCalledWith(7);
94
- });
@@ -1,27 +0,0 @@
1
- import { AssetDescription } from "./AssetDescription.js";
2
-
3
- test('equality', () => {
4
- const a = new AssetDescription('a', 'b');
5
- const b = new AssetDescription('a', 'b');
6
- const c = new AssetDescription('b', 'a');
7
- const d = new AssetDescription('b', 'b');
8
- const e = new AssetDescription('a', 'a');
9
- const f = new AssetDescription('x', 'y');
10
-
11
- expect(b.equals(a)).toBe(true);
12
- expect(b.equals(c)).toBe(false);
13
- expect(b.equals(d)).toBe(false);
14
- expect(b.equals(e)).toBe(false);
15
- expect(b.equals(f)).toBe(false);
16
- });
17
-
18
-
19
- test('hash stability', () => {
20
- const a = new AssetDescription('a', 'b');
21
-
22
- expect(a.hash()).toEqual(a.hash());
23
-
24
- const b = new AssetDescription('a', 'b');
25
-
26
- expect(a.hash()).toEqual(b.hash());
27
- });
@@ -1,50 +0,0 @@
1
- import { Asset } from "./Asset.js";
2
- import { AssetManager } from "./AssetManager.js";
3
- import { AssetLoader } from "./loaders/AssetLoader.js";
4
- import ConcurrentExecutor from "../../core/process/executor/ConcurrentExecutor.js";
5
-
6
- /**
7
- *
8
- * @return {Engine}
9
- */
10
- function dummyEngine() {
11
- const executor = new ConcurrentExecutor();
12
-
13
- return {
14
- executor: executor
15
- };
16
- }
17
-
18
- class DummyLoader extends AssetLoader {
19
- load(scope, path, success, failure, progress) {
20
- success(new Asset(() => 1));
21
- }
22
- }
23
-
24
- test('successful get', async () => {
25
- const am = new AssetManager(dummyEngine());
26
-
27
- await am.registerLoader('a', new DummyLoader());
28
-
29
- am.startup();
30
-
31
- return new Promise(function (resolve, reject) {
32
- am.get({ path: 'bla', type: 'a', callback: resolve, failure: reject });
33
- });
34
- });
35
-
36
- test('tryGet loaded resource', async () => {
37
- const am = new AssetManager(dummyEngine());
38
-
39
- am.startup();
40
-
41
- await am.registerLoader('a', new DummyLoader());
42
-
43
- await am.promise('bla', 'a');
44
-
45
- const asset = am.tryGet('bla', 'a');
46
-
47
- expect(asset).not.toBeNull();
48
- expect(asset).not.toBeUndefined();
49
- });
50
-
@@ -1,5 +0,0 @@
1
- import { PNG } from "./PNG.js";
2
-
3
- test("constructor does not throw", () => {
4
- expect(() => new PNG()).not.toThrow()
5
- });
@@ -1,5 +0,0 @@
1
- import { PNGReader } from "./PNGReader.js";
2
-
3
- test("constructor does not throw", () => {
4
- expect(() => new PNGReader(new ArrayBuffer(0))).not.toThrow();
5
- });
@@ -1,15 +0,0 @@
1
- import { crc } from "./crc.js";
2
-
3
- test("sanity", () => {
4
-
5
- const empty = crc(new Uint8Array(0), 0, 0);
6
-
7
- expect(typeof empty).toBe("number");
8
- expect(Number.isInteger(empty)).toBe(true);
9
-
10
- const one = crc(new Uint8Array([1]), 0, 1);
11
-
12
- expect(typeof one).toBe("number");
13
- expect(Number.isInteger(one)).toBe(true);
14
-
15
- });
@@ -1,81 +0,0 @@
1
- import { ControlContext } from "./ControlContext.js";
2
- import { EntityComponentDataset } from "../ecs/EntityComponentDataset.js";
3
- import { ControlContextState } from "./ControlContextState.js";
4
- import { IllegalStateException } from "../../core/fsm/exceptions/IllegalStateException.js";
5
-
6
- test("Constructor doesn't throw", () => {
7
- new ControlContext();
8
- });
9
-
10
- test("initial state", () => {
11
- const cc = new ControlContext();
12
-
13
- expect(cc.getState()).toBe(ControlContextState.Initial);
14
- });
15
-
16
- test("Initialization works as expected", () => {
17
- const cc = new ControlContext();
18
-
19
- cc.initialize(new EntityComponentDataset());
20
-
21
- expect(cc.getState()).toBe(ControlContextState.Ready);
22
- });
23
-
24
- test("full lifecycle", () => {
25
- const cc = new ControlContext();
26
-
27
- cc.initialize(new EntityComponentDataset());
28
-
29
- expect(cc.getState()).toBe(ControlContextState.Ready);
30
-
31
- cc.startup();
32
-
33
- expect(cc.getState()).toBe(ControlContextState.Running);
34
-
35
- cc.shutdown();
36
-
37
- expect(cc.getState()).toBe(ControlContextState.Ready);
38
-
39
- cc.dispose();
40
-
41
- expect(cc.getState()).toBe(ControlContextState.Disposed);
42
- });
43
-
44
- test("Illegal state exception on trying to startup without initialization", () => {
45
-
46
- const cc = new ControlContext();
47
-
48
- expect(() => cc.startup()).toThrowError(IllegalStateException);
49
- });
50
-
51
- test("Illegal state exception on trying to shutdown without initialization", () => {
52
-
53
- const cc = new ControlContext();
54
-
55
- expect(() => cc.shutdown()).toThrowError(IllegalStateException);
56
- });
57
-
58
- test("Illegal state exception on trying to initialize from running state", () => {
59
-
60
- const cc = new ControlContext();
61
-
62
- const ecd = new EntityComponentDataset();
63
- cc.initialize(ecd);
64
- cc.startup();
65
-
66
- expect(() => cc.initialize(ecd)).toThrowError(IllegalStateException);
67
- });
68
-
69
- test("Attempting to startup with a built entity must throw illegal state exception", () => {
70
- const cc = new ControlContext();
71
- cc.transientEntities = false;
72
-
73
- const ecd = new EntityComponentDataset();
74
-
75
- cc.initialize(ecd);
76
-
77
- cc.makeEntity().build(ecd);
78
-
79
- expect(() => cc.startup()).toThrowError(IllegalStateException);
80
-
81
- });
@@ -1,188 +0,0 @@
1
- import Entity from "./Entity.js";
2
- import { EntityComponentDataset } from "./EntityComponentDataset.js";
3
- import { EntityFlags } from "./EntityFlags.js";
4
-
5
-
6
- class DummyComponent {
7
- }
8
-
9
- /**
10
- *
11
- * @return {EntityComponentDataset}
12
- */
13
- function sampleDataset() {
14
- const dataset = new EntityComponentDataset();
15
-
16
- dataset.setComponentTypeMap([DummyComponent]);
17
-
18
- return dataset;
19
- }
20
-
21
- test("constructor doesn't throw", () => {
22
- new Entity();
23
- });
24
-
25
- test("entity exists in dataset after build", () => {
26
- const dataset = new EntityComponentDataset();
27
-
28
- const builder = new Entity();
29
-
30
- const entity = builder.build(dataset);
31
-
32
- expect(dataset.entityExists(entity)).toBe(true);
33
- });
34
-
35
- test("component exist in dataset after build", () => {
36
- const dataset = new EntityComponentDataset();
37
-
38
- dataset.setComponentTypeMap([DummyComponent]);
39
-
40
- const builder = new Entity();
41
-
42
- const component = new DummyComponent();
43
-
44
- builder.add(component);
45
-
46
- const entity = builder.build(dataset);
47
-
48
- expect(dataset.entityExists(entity)).toBe(true);
49
-
50
- expect(dataset.getComponentByIndex(entity, 0)).toBe(component);
51
- });
52
-
53
- test("'Built' flag is reset when entity is removed without invoking 'destroy' method", () => {
54
- const dataset = sampleDataset();
55
-
56
- const b = new Entity();
57
-
58
- expect(b.getFlag(EntityFlags.Built)).toBe(false);
59
- expect(b.isBuilt).toBe(false);
60
-
61
- b.build(dataset);
62
-
63
- expect(b.getFlag(EntityFlags.Built)).toBe(true);
64
- expect(b.isBuilt).toBe(true);
65
-
66
- dataset.removeEntity(b.id);
67
-
68
- expect(b.getFlag(EntityFlags.Built)).toBe(false);
69
- expect(b.isBuilt).toBe(false);
70
- });
71
-
72
- test("removeAllComponents from empty", () => {
73
- const entity = new Entity();
74
-
75
- expect(() => entity.removeAllComponents()).not.toThrow()
76
- });
77
-
78
- test("removeAllComponents with 1 entity", () => {
79
- const entity = new Entity();
80
-
81
- entity.add(new DummyComponent());
82
-
83
- expect(entity.hasComponent(DummyComponent)).toBe(true);
84
-
85
- entity.removeAllComponents();
86
-
87
- expect(entity.hasComponent(DummyComponent)).toBe(false);
88
- });
89
-
90
- test("removeComponent when component is not preset", () => {
91
- const entity = new Entity();
92
-
93
- expect(entity.removeComponent(DummyComponent)).toBe(null);
94
- });
95
-
96
- test("removeComponent when component is preset", () => {
97
- const entity = new Entity();
98
-
99
- const component = new DummyComponent();
100
-
101
- entity.add(component)
102
-
103
- expect(entity.removeComponent(DummyComponent)).toBe(component);
104
-
105
- expect(entity.hasComponent(DummyComponent)).toBe(false);
106
- });
107
-
108
- test("getComponentSafe throws when component is missing", () => {
109
-
110
- const entity = new Entity();
111
-
112
- expect(() => entity.getComponentSafe(DummyComponent)).toThrow();
113
-
114
- });
115
- test("getComponentSafe throws when component is present", () => {
116
-
117
- const entity = new Entity();
118
-
119
- const component = new DummyComponent();
120
- entity.add(component);
121
-
122
- expect(() => entity.getComponentSafe(DummyComponent)).not.toThrow();
123
-
124
- expect(entity.getComponentSafe(DummyComponent)).toBe(component);
125
- });
126
-
127
- test("adding component to live entity results in component being added to the dataset", () => {
128
-
129
- const entity = new Entity();
130
-
131
- const ecd = sampleDataset();
132
-
133
- entity.build(ecd)
134
-
135
- const component = new DummyComponent();
136
- entity.add(component);
137
-
138
- expect(ecd.getComponent(entity.id, DummyComponent)).toBe(component);
139
-
140
- });
141
-
142
- test("promiseEvent", async () => {
143
-
144
- const entity = new Entity();
145
-
146
- const ecd = sampleDataset();
147
-
148
- entity.build(ecd)
149
-
150
- const promise = entity.promiseEvent("x");
151
-
152
- entity.sendEvent("x");
153
-
154
- await promise;
155
- });
156
-
157
- test("generation correctly set for build", () => {
158
-
159
- const entity = new Entity();
160
-
161
- const ecd = sampleDataset();
162
-
163
- entity.build(ecd);
164
-
165
- expect(entity.generation).toEqual(ecd.getEntityGeneration(entity.id));
166
-
167
- // rebuild
168
- entity.destroy();
169
-
170
- entity.build(ecd);
171
-
172
- expect(entity.generation).toEqual(ecd.getEntityGeneration(entity.id));
173
- });
174
-
175
- test("generation correctly set when binding live entity", () => {
176
-
177
-
178
- const ecd = sampleDataset();
179
-
180
-
181
- const entity_a = ecd.createEntity();
182
- const entity_b = ecd.createEntity();
183
- const entity_c = ecd.createEntity();
184
-
185
- const entity = Entity.readFromDataset(entity_b, ecd);
186
-
187
- expect(entity.generation).toEqual(ecd.getEntityGeneration(entity_b));
188
- });
@@ -1,52 +0,0 @@
1
- import { EntityBlueprint } from "./EntityBlueprint.js";
2
- import Entity from "./Entity.js";
3
-
4
- test("constructor does not throw", () => {
5
-
6
- expect(() => new EntityBlueprint()).not.toThrow();
7
-
8
- });
9
-
10
- test("build empty", () => {
11
- const blueprint = new EntityBlueprint();
12
-
13
- const entity = blueprint.build();
14
-
15
- expect(entity).toBeDefined();
16
- expect(entity).toBeInstanceOf(Entity);
17
- expect(entity.count).toEqual(0);
18
- });
19
-
20
- class DummyComponent {
21
- a = 0
22
-
23
- fromJSON({ a }) {
24
- this.a = a;
25
- }
26
- }
27
-
28
- test("a copy of the added component ends up on built entity", () => {
29
-
30
- const blueprint = new EntityBlueprint();
31
-
32
- blueprint.addJSON(DummyComponent, { a: 7 });
33
-
34
- const entity = blueprint.build();
35
-
36
- const retrieved = entity.getComponent(DummyComponent);
37
-
38
- expect(retrieved).toBeInstanceOf(DummyComponent);
39
- expect(retrieved.a).toEqual(7);
40
- });
41
-
42
- test("seed template", () => {
43
- const blueprint = new EntityBlueprint();
44
-
45
- blueprint.addJSON(DummyComponent, { a: '$x' });
46
-
47
- const entity = blueprint.build({ x: 13 });
48
-
49
- const component = entity.getComponent(DummyComponent);
50
-
51
- expect(component.a).toEqual(13);
52
- });