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