@woosh/meep-engine 2.110.13 → 2.110.15

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 (439) hide show
  1. package/package.json +4 -3
  2. package/src/engine/graphics/camera/CameraShake.d.ts +6 -6
  3. package/src/engine/graphics/camera/CameraShake.d.ts.map +1 -1
  4. package/src/engine/graphics/camera/CameraShake.js +13 -13
  5. package/src/engine/graphics/ecs/water2/shader/testWaterShader.js +4 -4
  6. package/editor/actions/concrete/ModifyPatchSampler2DAction.spec.js +0 -30
  7. package/src/core/IdPool.spec.js +0 -29
  8. package/src/core/UUID.spec.js +0 -8
  9. package/src/core/binary/32BitEncoder.spec.js +0 -11
  10. package/src/core/binary/Base64.spec.js +0 -14
  11. package/src/core/binary/BinaryBuffer.spec.js +0 -324
  12. package/src/core/binary/BitSet.spec.js +0 -468
  13. package/src/core/binary/EncodingBinaryBuffer.spec.js +0 -16
  14. package/src/core/binary/align_32.spec.js +0 -11
  15. package/src/core/binary/align_4.spec.js +0 -20
  16. package/src/core/binary/data_view/DataViewStructAccessor.spec.js +0 -20
  17. package/src/core/binary/de_interleave_2_bits.spec.js +0 -21
  18. package/src/core/binary/dec2hex.spec.js +0 -13
  19. package/src/core/binary/hex2dec.spec.js +0 -22
  20. package/src/core/binary/int32_to_binary_string.spec.js +0 -9
  21. package/src/core/binary/operations/bitCount.spec.js +0 -19
  22. package/src/core/binary/operations/ceilPowerOfTwo.spec.js +0 -17
  23. package/src/core/binary/reverse_bits_uint32.spec.js +0 -18
  24. package/src/core/binary/split_by_2.spec.js +0 -22
  25. package/src/core/binary/split_by_3.spec.js +0 -22
  26. package/src/core/binary/uint8_to_float.spec.js +0 -7
  27. package/src/core/bvh2/binary/2/BinaryUint32BVH.spec.js +0 -136
  28. package/src/core/bvh2/bvh3/BVH.spec.js +0 -361
  29. package/src/core/bvh2/bvh3/BvhClient.spec.js +0 -51
  30. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.spec.js +0 -60
  31. package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.spec.js +0 -22
  32. package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.spec.js +0 -64
  33. package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.spec.js +0 -29
  34. package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point.spec.js +0 -209
  35. package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.spec.js +0 -41
  36. package/src/core/cache/Cache.spec.js +0 -277
  37. package/src/core/cache/FrequencySketch.spec.js +0 -5
  38. package/src/core/cache/LoadingCache.spec.js +0 -120
  39. package/src/core/codegen/LineBuilder.spec.js +0 -41
  40. package/src/core/collection/CuckooFilter.spec.js +0 -111
  41. package/src/core/collection/RingBuffer.spec.js +0 -59
  42. package/src/core/collection/Stack.spec.js +0 -63
  43. package/src/core/collection/array/arrayPickBestElement.spec.js +0 -7
  44. package/src/core/collection/array/arraySetSortingDiff.spec.js +0 -74
  45. package/src/core/collection/array/array_contains_duplicates.spec.js +0 -14
  46. package/src/core/collection/array/array_copy.spec.js +0 -19
  47. package/src/core/collection/array/array_deduplicate.spec.js +0 -11
  48. package/src/core/collection/array/array_get_index_in_range.spec.js +0 -16
  49. package/src/core/collection/array/array_remove_first.spec.js +0 -39
  50. package/src/core/collection/array/array_shuffle.spec.js +0 -27
  51. package/src/core/collection/array/binarySearchHighIndex.spec.js +0 -51
  52. package/src/core/collection/array/isArrayEqual.spec.js +0 -25
  53. package/src/core/collection/array/typed/is_typed_array_equals.spec.js +0 -71
  54. package/src/core/collection/array/weightedRandomFromArray.spec.js +0 -22
  55. package/src/core/collection/heap/BinaryHeap.spec.js +0 -137
  56. package/src/core/collection/heap/Uint32Heap.spec.js +0 -172
  57. package/src/core/collection/list/List.spec.js +0 -438
  58. package/src/core/collection/list/ListForwarder.spec.js +0 -101
  59. package/src/core/collection/map/HashMap.spec.js +0 -291
  60. package/src/core/collection/queue/Deque.spec.js +0 -276
  61. package/src/core/collection/set/HashSet.spec.js +0 -39
  62. package/src/core/collection/set/compute_set_difference.spec.js +0 -45
  63. package/src/core/collection/set/compute_set_intersection.spec.js +0 -45
  64. package/src/core/collection/table/RowFirstTable.spec.js +0 -323
  65. package/src/core/collection/table/RowFirstTableSpec.spec.js +0 -49
  66. package/src/core/collection/table/bind/TableRecord.spec.js +0 -27
  67. package/src/core/color/Color.spec.js +0 -174
  68. package/src/core/color/YCbCr/YCbCr.spec.js +0 -16
  69. package/src/core/color/hex/hex2rgb.spec.js +0 -10
  70. package/src/core/color/hex/rgb2hex.spec.js +0 -13
  71. package/src/core/color/hsv/hsv2rgb.spec.js +0 -43
  72. package/src/core/color/kelvin/kelvin_to_rgb.spec.js +0 -61
  73. package/src/core/color/kelvin/rgb_to_kelvin.spec.js +0 -15
  74. package/src/core/color/oklab/Okhsv.spec.js +0 -17
  75. package/src/core/color/oklab/XYZ.spec.js +0 -17
  76. package/src/core/color/oklab/oklab_to_xyz.spec.js +0 -31
  77. package/src/core/color/oklab/xyz_to_oklab.spec.js +0 -31
  78. package/src/core/color/parse_color.spec.js +0 -18
  79. package/src/core/color/sRGB/sRGB.spec.js +0 -16
  80. package/src/core/color/xyz/XYZ.spec.js +0 -16
  81. package/src/core/events/signal/Signal.spec.js +0 -253
  82. package/src/core/events/signal/SignalBinding.spec.js +0 -58
  83. package/src/core/fsm/simple/SimpleStateMachine.spec.js +0 -107
  84. package/src/core/fsm/simple/SimpleStateMachineDescription.spec.js +0 -103
  85. package/src/core/function/extractFunctionBody.spec.js +0 -15
  86. package/src/core/geom/2d/Rectangle.spec.js +0 -62
  87. package/src/core/geom/2d/aabb/AABB2.spec.js +0 -153
  88. package/src/core/geom/2d/aabb/aabb2_compute_center_from_multiple.spec.js +0 -11
  89. package/src/core/geom/2d/aabb/aabb2_compute_overlap.spec.js +0 -56
  90. package/src/core/geom/2d/aabb/aabb2_contains.spec.js +0 -40
  91. package/src/core/geom/2d/aabb/aabb2_distance_to_point.spec.js +0 -17
  92. package/src/core/geom/2d/aabb/aabb2_intersects_ray.spec.js +0 -28
  93. package/src/core/geom/2d/aabb/aabb2_signed_distance_sqr_to_point.spec.js +0 -40
  94. package/src/core/geom/2d/bvh/BVH2D.spec.js +0 -359
  95. package/src/core/geom/2d/bvh/bvh2d_query_all_data_by_circle.spec.js +0 -89
  96. package/src/core/geom/2d/circle/circle_compute_circle_intersection.spec.js +0 -79
  97. package/src/core/geom/2d/compute_polygon_area_2d.spec.js +0 -10
  98. package/src/core/geom/2d/compute_triangle_area_2d.spec.js +0 -9
  99. package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.spec.js +0 -33
  100. package/src/core/geom/2d/convex-hull/convex_hull_monotone_2d.spec.js +0 -33
  101. package/src/core/geom/2d/hash-grid/SpatialHashGrid.spec.js +0 -254
  102. package/src/core/geom/2d/hash-grid/shg_query_elements_circle.spec.js +0 -85
  103. package/src/core/geom/2d/hash-grid/shg_query_elements_line.spec.js +0 -102
  104. package/src/core/geom/2d/quad-tree/QuadTreeNode.spec.js +0 -235
  105. package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.spec.js +0 -86
  106. package/src/core/geom/2d/quad-tree-binary/QuadTree.spec.js +0 -53
  107. package/src/core/geom/2d/r-tree/StaticR2Tree.spec.js +0 -62
  108. package/src/core/geom/2d/spline_bezier2_2d.spec.js +0 -16
  109. package/src/core/geom/2d/uv_map_circle_to_square.spec.js +0 -28
  110. package/src/core/geom/2d/uv_map_square_to_circle.spec.js +0 -30
  111. package/src/core/geom/3d/SurfacePoint3.spec.js +0 -116
  112. package/src/core/geom/3d/aabb/AABB3.spec.js +0 -257
  113. package/src/core/geom/3d/aabb/aabb3_array_intersects_point.spec.js +0 -48
  114. package/src/core/geom/3d/aabb/aabb3_build_corners.spec.js +0 -27
  115. package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_max.spec.js +0 -8
  116. package/src/core/geom/3d/aabb/aabb3_compute_plane_side.spec.js +0 -25
  117. package/src/core/geom/3d/aabb/aabb3_corner_edge_mapping.spec.js +0 -39
  118. package/src/core/geom/3d/aabb/aabb3_edge_corner_mapping.spec.js +0 -32
  119. package/src/core/geom/3d/aabb/aabb3_expand_array.spec.js +0 -16
  120. package/src/core/geom/3d/aabb/aabb3_from_v3_array.spec.js +0 -32
  121. package/src/core/geom/3d/aabb/aabb3_intersects_aabb3.spec.js +0 -115
  122. package/src/core/geom/3d/aabb/aabb3_intersects_ray.spec.js +0 -161
  123. package/src/core/geom/3d/aabb/aabb3_matrix4_project.spec.js +0 -54
  124. package/src/core/geom/3d/aabb/aabb3_raycast.spec.js +0 -37
  125. package/src/core/geom/3d/aabb/aabb3_score_boxes_SAH.spec.js +0 -14
  126. package/src/core/geom/3d/cone/computeConePlaneSide.spec.js +0 -13
  127. package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.spec.js +0 -95
  128. package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.spec.js +0 -61
  129. package/src/core/geom/3d/mat4/MATRIX_4_IDENTITY.spec.js +0 -10
  130. package/src/core/geom/3d/mat4/m4_multiply.spec.js +0 -34
  131. package/src/core/geom/3d/mat4/m4_multiply_alphatensor.spec.js +0 -35
  132. package/src/core/geom/3d/morton/v3_morton_encode_transformed.spec.js +0 -20
  133. package/src/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +0 -41
  134. package/src/core/geom/3d/normal/octahedron/encoding.spec.js +0 -54
  135. package/src/core/geom/3d/plane/plane3_projectPoint.spec.js +0 -54
  136. package/src/core/geom/3d/plane/plane3_slerp.spec.js +0 -209
  137. package/src/core/geom/3d/ray/ray3_array_compose.spec.js +0 -14
  138. package/src/core/geom/3d/shape/TransformedShape3D.spec.js +0 -55
  139. package/src/core/geom/3d/shape/UnitCubeShape3D.spec.js +0 -42
  140. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.spec.js +0 -53
  141. package/src/core/geom/3d/sphere/harmonics/sh3_vector_accumulate.spec.js +0 -27
  142. package/src/core/geom/3d/sphere/sphere_intersects_point.spec.js +0 -134
  143. package/src/core/geom/3d/sphere/sphere_intersects_ray.spec.js +0 -60
  144. package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.spec.js +0 -8
  145. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +0 -233
  146. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +0 -66
  147. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +0 -36
  148. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.js +0 -61
  149. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.spec.js +0 -30
  150. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.spec.js +0 -24
  151. package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.spec.js +0 -66
  152. package/src/core/geom/3d/topology/simplify/collapseEdge.spec.js +0 -24
  153. package/src/core/geom/3d/topology/struct/TopoEdge.spec.js +0 -52
  154. package/src/core/geom/3d/topology/struct/TopoVertex.spec.js +0 -128
  155. package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.spec.js +0 -36
  156. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.spec.js +0 -16
  157. package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.spec.js +0 -84
  158. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.spec.js +0 -15
  159. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.spec.js +0 -16
  160. package/src/core/geom/3d/triangle/computeTriangleClosestPointToPointBarycentric.spec.js +0 -100
  161. package/src/core/geom/3d/triangle/computeTriangleRayIntersection.spec.js +0 -25
  162. package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentric.spec.js +0 -26
  163. package/src/core/geom/3d/v3_compute_triangle_normal.spec.js +0 -46
  164. package/src/core/geom/ConicRay.spec.js +0 -24
  165. package/src/core/geom/Quaternion.spec.js +0 -429
  166. package/src/core/geom/Vector1.spec.js +0 -74
  167. package/src/core/geom/Vector2.spec.js +0 -295
  168. package/src/core/geom/Vector3.spec.js +0 -285
  169. package/src/core/geom/Vector4.spec.js +0 -11
  170. package/src/core/geom/normalize_angle_rad.spec.js +0 -45
  171. package/src/core/geom/packing/computeBoundingSphereOfSpheres.spec.js +0 -24
  172. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.spec.js +0 -60
  173. package/src/core/geom/packing/miniball/Miniball.spec.js +0 -35
  174. package/src/core/geom/packing/miniball/Subspan.spec.js +0 -51
  175. package/src/core/geom/random/randomPointOnBox.spec.js +0 -57
  176. package/src/core/geom/vec/vector_normalize.spec.js +0 -15
  177. package/src/core/geom/vec3/v3_angle_cos_between.spec.js +0 -124
  178. package/src/core/geom/vec3/v3_displace_in_direction.spec.js +0 -80
  179. package/src/core/geom/vec3/v3_distance_above_plane.spec.js +0 -40
  180. package/src/core/graph/Edge.spec.js +0 -85
  181. package/src/core/graph/SquareMatrix.spec.js +0 -102
  182. package/src/core/graph/coloring/colorizeGraphGreedy.spec.js +0 -26
  183. package/src/core/graph/convert_graph_to_dot_string.spec.js +0 -28
  184. package/src/core/graph/eigen/matrix_eigenvalues_in_place.spec.js +0 -57
  185. package/src/core/graph/graph_k_means_cluster.spec.js +0 -23
  186. package/src/core/graph/mn_graph_coarsen.spec.js +0 -45
  187. package/src/core/graph/v2/Graph.spec.js +0 -364
  188. package/src/core/json/resolvePath.spec.js +0 -14
  189. package/src/core/lang/reactive/compileReactiveExpression.spec.js +0 -169
  190. package/src/core/math/bessel_j0.spec.js +0 -43
  191. package/src/core/math/clamp.spec.js +0 -15
  192. package/src/core/math/computeGreatestCommonDivisor.spec.js +0 -9
  193. package/src/core/math/computeIsoscelesTriangleApexAngle.spec.js +0 -6
  194. package/src/core/math/computeWholeDivisorLow.spec.js +0 -9
  195. package/src/core/math/copysign.spec.js +0 -13
  196. package/src/core/math/epsilonEquals.spec.js +0 -17
  197. package/src/core/math/factorial.spec.js +0 -9
  198. package/src/core/math/fract.spec.js +0 -11
  199. package/src/core/math/hash/computeHashFloatArray.spec.js +0 -11
  200. package/src/core/math/hash/computeObjectHash.spec.js +0 -42
  201. package/src/core/math/hash/murmur3_32.spec.js +0 -8
  202. package/src/core/math/hash/squirrel3.spec.js +0 -16
  203. package/src/core/math/iabs.spec.js +0 -9
  204. package/src/core/math/interval/NumericInterval.spec.js +0 -89
  205. package/src/core/math/interval/isValueBetween.spec.js +0 -11
  206. package/src/core/math/interval/isValueBetweenInclusive.spec.js +0 -16
  207. package/src/core/math/interval/overlap1D.spec.js +0 -10
  208. package/src/core/math/inverseLerp.spec.js +0 -13
  209. package/src/core/math/isPowerOfTwo.spec.js +0 -9
  210. package/src/core/math/isqrt.spec.js +0 -9
  211. package/src/core/math/lerp.spec.js +0 -15
  212. package/src/core/math/linalg/solve_linear_system.spec.js +0 -70
  213. package/src/core/math/max.spec.js +0 -25
  214. package/src/core/math/max2.spec.js +0 -13
  215. package/src/core/math/max3.spec.js +0 -29
  216. package/src/core/math/min2.spec.js +0 -37
  217. package/src/core/math/min3.spec.js +0 -29
  218. package/src/core/math/newton_solver_1d.spec.js +0 -9
  219. package/src/core/math/nextOdd.spec.js +0 -9
  220. package/src/core/math/noise/create_simplex_noise_2d.spec.js +0 -21
  221. package/src/core/math/noise/sdnoise.spec.js +0 -87
  222. package/src/core/math/physics/irradiance/interpolate_irradiance_linear.spec.js +0 -20
  223. package/src/core/math/physics/irradiance/interpolate_irradiance_lograrithmic.spec.js +0 -18
  224. package/src/core/math/physics/irradiance/interpolate_irradiance_smith.spec.js +0 -20
  225. package/src/core/math/pingpong.spec.js +0 -11
  226. package/src/core/math/random/MersenneTwister.spec.js +0 -19
  227. package/src/core/math/random/randomFloatBetween.spec.js +0 -9
  228. package/src/core/math/random/randomGaussian.spec.js +0 -9
  229. package/src/core/math/random/randomIntegerBetween.spec.js +0 -8
  230. package/src/core/math/random/roundFair.spec.js +0 -12
  231. package/src/core/math/random/seededRandomMersenneTwister.spec.js +0 -10
  232. package/src/core/math/random/seededRandom_Mulberry32.spec.js +0 -19
  233. package/src/core/math/remap.spec.js +0 -15
  234. package/src/core/math/sign.spec.js +0 -13
  235. package/src/core/math/smoothStep.spec.js +0 -16
  236. package/src/core/math/smootherStep.spec.js +0 -16
  237. package/src/core/math/solveQuadratic.spec.js +0 -18
  238. package/src/core/math/spline/cubicCurve.spec.js +0 -13
  239. package/src/core/math/spline/makeCubicCurve.spec.js +0 -9
  240. package/src/core/math/spline/spline_bezier2.spec.js +0 -13
  241. package/src/core/math/spline/spline_bezier3_bounds.spec.js +0 -37
  242. package/src/core/math/spline/spline_hermite3.spec.js +0 -18
  243. package/src/core/math/spline/spline_hermite3_bounds.spec.js +0 -37
  244. package/src/core/math/statistics/computeSampleSize_Cochran.spec.js +0 -12
  245. package/src/core/math/statistics/computeStatisticalMean.spec.js +0 -9
  246. package/src/core/math/statistics/computeStatisticalPartialMedian.spec.js +0 -13
  247. package/src/core/math/statistics/computeStatisticalPercentile.spec.js +0 -11
  248. package/src/core/math/statistics/computeStatisticalVariance.spec.js +0 -10
  249. package/src/core/math/statistics/halton_sequence.spec.js +0 -40
  250. package/src/core/math/statistics/radical_inverse_VdC_base_2.spec.js +0 -9
  251. package/src/core/math/statistics/softmax.spec.js +0 -9
  252. package/src/core/model/BooleanVector3.spec.js +0 -51
  253. package/src/core/model/BoundedValue.spec.js +0 -17
  254. package/src/core/model/ModuleRegistry.spec.js +0 -31
  255. package/src/core/model/ObservedBoolean.spec.js +0 -81
  256. package/src/core/model/ObservedInteger.spec.js +0 -51
  257. package/src/core/model/node-graph/Connection.spec.js +0 -33
  258. package/src/core/model/node-graph/NodeGraph.spec.js +0 -107
  259. package/src/core/model/node-graph/node/NodeDescription.spec.js +0 -81
  260. package/src/core/model/node-graph/node/NodeInstance.spec.js +0 -82
  261. package/src/core/model/node-graph/node/NodeInstancePortReference.spec.js +0 -109
  262. package/src/core/model/node-graph/node/NodeRegistry.spec.js +0 -123
  263. package/src/core/model/node-graph/node/Port.spec.js +0 -102
  264. package/src/core/model/node-graph/type/DataType.spec.js +0 -47
  265. package/src/core/model/node-graph/type/ParametricDataType.spec.js +0 -63
  266. package/src/core/model/node-graph/visual/PortVisualData.spec.js +0 -16
  267. package/src/core/model/object/ObjectPoolFactory.spec.js +0 -54
  268. package/src/core/model/object/objectDeepEquals.spec.js +0 -54
  269. package/src/core/model/object/write_property.spec.js +0 -26
  270. package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.spec.js +0 -158
  271. package/src/core/model/reactive/js/compileReactiveToJS.spec.js +0 -14
  272. package/src/core/model/reactive/model/logic/ReactiveAnd.spec.js +0 -51
  273. package/src/core/model/reactive/model/logic/ReactiveOr.spec.js +0 -53
  274. package/src/core/model/reactive/model/terminal/ReactiveReference.spec.js +0 -26
  275. package/src/core/model/reactive/trigger/BlackboardTrigger.spec.js +0 -24
  276. package/src/core/model/reactive/trigger/ReactiveTrigger.spec.js +0 -5
  277. package/src/core/model/stat/LinearModifier.spec.js +0 -96
  278. package/src/core/model/stat/Stat.spec.js +0 -111
  279. package/src/core/parser/simple/readHexToken.spec.js +0 -21
  280. package/src/core/parser/simple/readIdentifierToken.spec.js +0 -32
  281. package/src/core/parser/simple/readNumberToken.spec.js +0 -17
  282. package/src/core/parser/simple/readReferenceToken.spec.js +0 -18
  283. package/src/core/parser/simple/readStringToken.spec.js +0 -57
  284. package/src/core/parser/simple/readUnsignedIntegerToken.spec.js +0 -6
  285. package/src/core/path/computeFileExtension.spec.js +0 -13
  286. package/src/core/path/computePathBase.spec.js +0 -13
  287. package/src/core/path/computePathDirectory.spec.js +0 -8
  288. package/src/core/primitives/array/computeStridedIntegerArrayHash.spec.js +0 -28
  289. package/src/core/primitives/numbers/computeHashFloat.spec.js +0 -14
  290. package/src/core/primitives/numbers/number_compare_ascending.spec.js +0 -9
  291. package/src/core/primitives/numbers/number_compare_descending.spec.js +0 -9
  292. package/src/core/primitives/numbers/number_format_by_thousands.spec.js +0 -12
  293. package/src/core/primitives/numbers/number_pretty_print.spec.js +0 -19
  294. package/src/core/primitives/strings/compareStrings.spec.js +0 -12
  295. package/src/core/primitives/strings/computeStringHash.spec.js +0 -20
  296. package/src/core/primitives/strings/insert_after.spec.js +0 -16
  297. package/src/core/primitives/strings/insert_before.spec.js +0 -16
  298. package/src/core/primitives/strings/string_capitalize.spec.js +0 -13
  299. package/src/core/primitives/strings/string_compute_common_prefix.spec.js +0 -23
  300. package/src/core/primitives/strings/string_format_camel_to_kebab.spec.js +0 -8
  301. package/src/core/primitives/strings/string_jaro_winkler.spec.js +0 -39
  302. package/src/core/primitives/strings/string_strip_trailing.spec.js +0 -27
  303. package/src/core/process/PromiseWatcher.spec.js +0 -69
  304. package/src/core/process/executor/ConcurrentExecutor.spec.js +0 -135
  305. package/src/core/process/task/util/actionTask.spec.js +0 -14
  306. package/src/core/process/task/util/countTask.spec.js +0 -18
  307. package/src/core/process/undo/ActionProcessor.spec.js +0 -64
  308. package/src/engine/Clock.spec.js +0 -26
  309. package/src/engine/Engine.spec.js +0 -15
  310. package/src/engine/achievements/Achievement.spec.js +0 -21
  311. package/src/engine/animation/curve/AnimationCurve.spec.js +0 -248
  312. package/src/engine/animation/curve/Keyframe.spec.js +0 -42
  313. package/src/engine/animation/curve/animation_curve_optimize.spec.js +0 -50
  314. package/src/engine/animation/curve/compression/downsample_float_array_curve_by_error.spec.js +0 -47
  315. package/src/engine/animation/curve/compression/sample_animation_curve_to_float_array.spec.js +0 -29
  316. package/src/engine/animation/keyed2/AnimationTrackPlayback.spec.js +0 -94
  317. package/src/engine/asset/AssetDescription.spec.js +0 -27
  318. package/src/engine/asset/AssetManager.spec.js +0 -50
  319. package/src/engine/asset/loaders/image/png/PNG.spec.js +0 -5
  320. package/src/engine/asset/loaders/image/png/PNGReader.spec.js +0 -5
  321. package/src/engine/asset/loaders/image/png/crc.spec.js +0 -15
  322. package/src/engine/control/ControlContext.spec.js +0 -81
  323. package/src/engine/ecs/Entity.spec.js +0 -188
  324. package/src/engine/ecs/EntityBlueprint.spec.js +0 -52
  325. package/src/engine/ecs/EntityComponentDataset.spec.js +0 -895
  326. package/src/engine/ecs/EntityManager.spec.js +0 -210
  327. package/src/engine/ecs/EntityObserver.spec.js +0 -184
  328. package/src/engine/ecs/animation/Animation.spec.js +0 -22
  329. package/src/engine/ecs/animation/AnimationClip.spec.js +0 -5
  330. package/src/engine/ecs/components/Tag.spec.js +0 -47
  331. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.spec.js +0 -126
  332. package/src/engine/ecs/fow/FogOfWar.spec.js +0 -13
  333. package/src/engine/ecs/guid/UUID.spec.js +0 -100
  334. package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.js +0 -21
  335. package/src/engine/ecs/parent/EntityNode.spec.js +0 -104
  336. package/src/engine/ecs/renderable/Renderable.spec.js +0 -10
  337. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.spec.js +0 -139
  338. package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerialization.spec.js +0 -259
  339. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.spec.js +0 -59
  340. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.spec.js +0 -123
  341. package/src/engine/ecs/terrain/ecs/Terrain.spec.js +0 -5
  342. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.spec.js +0 -38
  343. package/src/engine/ecs/terrain/overlay/TerrainOverlay.spec.js +0 -6
  344. package/src/engine/ecs/terrain/tiles/TerrainTile.spec.js +0 -25
  345. package/src/engine/ecs/tooltip/TooltipComponent.spec.js +0 -47
  346. package/src/engine/ecs/transform/Transform.spec.js +0 -310
  347. package/src/engine/ecs/transform/TransformSerializationAdapter.spec.js +0 -28
  348. package/src/engine/ecs/transform-attachment/TransformAttachment.spec.js +0 -103
  349. package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraph.spec.js +0 -5
  350. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.spec.js +0 -5
  351. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.spec.js +0 -94
  352. package/src/engine/graphics/ecs/decal/v2/Decal.spec.js +0 -5
  353. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.spec.js +0 -19
  354. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.spec.js +0 -5
  355. package/src/engine/graphics/ecs/mesh-v2/render/adapters/SGCacheKey.spec.js +0 -79
  356. package/src/engine/graphics/ecs/path/tube/TubePathStyle.spec.js +0 -5
  357. package/src/engine/graphics/ecs/path/tube/build/build_geometry_catmullrom.spec.js +0 -32
  358. package/src/engine/graphics/geometry/MikkT/MikkTSpace.spec.js +0 -28
  359. package/src/engine/graphics/geometry/bvh/buffered/bvh32_from_unindexed_geometry.spec.js +0 -22
  360. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.spec.js +0 -70
  361. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.spec.js +0 -47
  362. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.spec.js +0 -100
  363. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +0 -225
  364. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.spec.js +0 -215
  365. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.spec.js +0 -75
  366. package/src/engine/graphics/particles/particular/group/ParticleGroup.spec.js +0 -270
  367. package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.spec.js +0 -21
  368. package/src/engine/graphics/render/forward_plus/LightManager.spec.js +0 -94
  369. package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.spec.js +0 -79
  370. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.spec.js +0 -102
  371. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.spec.js +0 -78
  372. package/src/engine/graphics/texture/atlas/TextureAtlas.spec.js +0 -319
  373. package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.spec.js +0 -99
  374. package/src/engine/graphics/texture/sampler/Sampler2D.spec.js +0 -224
  375. package/src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.spec.js +0 -90
  376. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.spec.js +0 -183
  377. package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField.spec.js +0 -183
  378. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale.spec.js +0 -73
  379. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.spec.js +0 -31
  380. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_linear.spec.js +0 -44
  381. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_mipmap.spec.js +0 -13
  382. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_up_linear.spec.js +0 -14
  383. package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_max.spec.js +0 -40
  384. package/src/engine/graphics/texture/sampler/sampler2d_channel_compute_min_indices.spec.js +0 -15
  385. package/src/engine/graphics/texture/sampler/sampler2d_copy_with_margins.spec.js +0 -31
  386. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.spec.js +0 -10
  387. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.spec.js +0 -52
  388. package/src/engine/graphics/texture/sampler/serialization/TextureBinaryBufferSerializer.spec.js +0 -38
  389. package/src/engine/graphics/three/expand_aabb_by_transformed_three_object.spec.js +0 -108
  390. package/src/engine/graphics/trail/x/RibbonX.spec.js +0 -5
  391. package/src/engine/grid/obstacle/GridObstacle.spec.js +0 -175
  392. package/src/engine/input/devices/InputDeviceSwitch.spec.js +0 -5
  393. package/src/engine/input/devices/KeyboardDevice.spec.js +0 -12
  394. package/src/engine/input/devices/PointerDevice.spec.js +0 -12
  395. package/src/engine/intelligence/behavior/Behavior.spec.js +0 -15
  396. package/src/engine/intelligence/behavior/SelectorBehavior.spec.js +0 -18
  397. package/src/engine/intelligence/behavior/behavior_to_dot.spec.js +0 -25
  398. package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +0 -166
  399. package/src/engine/intelligence/behavior/composite/SequenceBehavior.spec.js +0 -17
  400. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.spec.js +0 -32
  401. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.spec.js +0 -75
  402. package/src/engine/intelligence/behavior/util/ConditionBehavior.spec.js +0 -24
  403. package/src/engine/intelligence/blackboard/Blackboard.spec.js +0 -111
  404. package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.spec.js +0 -30
  405. package/src/engine/intelligence/blackboard/make_blackboard_proxy.spec.js +0 -23
  406. package/src/engine/intelligence/mcts/MonteCarlo.spec.js +0 -244
  407. package/src/engine/intelligence/mcts/StateNode.spec.js +0 -49
  408. package/src/engine/intelligence/optimization/RandomOptimizer.spec.js +0 -57
  409. package/src/engine/intelligence/resource/ResourceAllocationSolver.spec.js +0 -104
  410. package/src/engine/intelligence/resource/StrategicResourceAllocator.spec.js +0 -46
  411. package/src/engine/knowledge/database/StaticKnowledgeDataTable.spec.js +0 -26
  412. package/src/engine/knowledge/database/StaticKnowledgeDatabase.spec.js +0 -23
  413. package/src/engine/navigation/ecs/components/Path.spec.js +0 -195
  414. package/src/engine/navigation/ecs/path_following/PathFollower.spec.js +0 -27
  415. package/src/engine/navigation/grid/find_path_on_grid_astar.spec.js +0 -87
  416. package/src/engine/notify/NotificationLog.spec.js +0 -17
  417. package/src/engine/options/Option.spec.js +0 -69
  418. package/src/engine/options/OptionGroup.spec.js +0 -61
  419. package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.js +0 -46
  420. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.js +0 -43
  421. package/src/engine/plugin/EnginePlugin.spec.js +0 -5
  422. package/src/engine/reference/v2/Reference.spec.js +0 -44
  423. package/src/engine/scene/Scene.spec.js +0 -20
  424. package/src/engine/scene/SceneManager.spec.js +0 -131
  425. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.spec.js +0 -49
  426. package/src/engine/ui/tiles2d/TileGrid.spec.js +0 -20
  427. package/src/engine/ui/tiles2d/computeTileGridMove.spec.js +0 -54
  428. package/src/generation/automata/CaveGeneratorCellularAutomata.spec.js +0 -12
  429. package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.spec.js +0 -30
  430. package/src/generation/filtering/numeric/complex/CellFilterGaussianBlur.spec.js +0 -17
  431. package/src/generation/filtering/numeric/process/computeCellFilterGradient.spec.js +0 -288
  432. package/src/generation/grid/GridData.spec.js +0 -46
  433. package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.spec.js +0 -116
  434. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.spec.js +0 -106
  435. package/src/generation/placement/action/GridCellActionPlaceTags.spec.js +0 -21
  436. package/src/generation/rules/CellMatcherLayerBitMaskTest.spec.js +0 -22
  437. package/src/generation/rules/cell/GridPatternMatcher.spec.js +0 -285
  438. package/src/generation/theme/ThemeEngine.spec.js +0 -7
  439. 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
- });