@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,210 +0,0 @@
1
- import { EntityManager } from "./EntityManager.js";
2
- import { System, SystemState } from "./System.js";
3
- import { jest } from '@jest/globals';
4
- import { IllegalStateException } from "../../core/fsm/exceptions/IllegalStateException.js";
5
- import { EntityComponentDataset } from "./EntityComponentDataset.js";
6
-
7
- /**
8
- *
9
- * @returns {Promise<EntityManager>}
10
- */
11
- function makeEm(systems = []) {
12
- const em = new EntityManager();
13
-
14
- //add systems
15
- systems.forEach(s => em.addSystem(s));
16
-
17
- return new Promise(function (resolve, reject) {
18
- //startup
19
- em.startup(function () {
20
- resolve(em);
21
- }, reject);
22
- });
23
- }
24
-
25
- class DummyComponent {
26
- }
27
-
28
- class DummySystem extends System {
29
- dependencies = [DummyComponent];
30
- }
31
-
32
- test("constructor doesn't throw", () => {
33
- expect(() => new EntityManager()).not.toThrow();
34
- });
35
-
36
- test("startup with no systems without errors", () => {
37
- const em = new EntityManager();
38
-
39
- return new Promise(function (resolve, reject) {
40
- //startup
41
- em.startup(resolve, reject);
42
- });
43
- });
44
-
45
- test("startup/shutdown with no systems without errors", async () => {
46
- const em = new EntityManager();
47
-
48
- await new Promise(function (resolve, reject) {
49
- //startup
50
- em.startup(resolve, reject);
51
- });
52
-
53
- await new Promise(function (resolve, reject) {
54
- //shutdown
55
- em.shutdown(resolve, reject)
56
- });
57
- });
58
-
59
- test("startup/shutdown with dummy systems without errors", async () => {
60
- const em = new EntityManager();
61
-
62
- const dummySystem = new DummySystem();
63
-
64
- const systemStartup = jest.spyOn(dummySystem, 'startup');
65
- const systemShutdown = jest.spyOn(dummySystem, 'shutdown');
66
-
67
- em.addSystem(dummySystem);
68
-
69
- await new Promise(function (resolve, reject) {
70
- //startup
71
- em.startup(resolve, reject);
72
- });
73
-
74
- expect(systemStartup).toHaveBeenCalledTimes(1);
75
- expect(systemShutdown).not.toHaveBeenCalled();
76
-
77
- await new Promise(function (resolve, reject) {
78
- //shutdown
79
- em.shutdown(resolve, reject)
80
- });
81
-
82
- expect(systemStartup).toHaveBeenCalledTimes(1);
83
- expect(systemShutdown).toHaveBeenCalledTimes(1);
84
- });
85
-
86
- test("call to 'simulate' propagate to registered system", () => {
87
- const dummySystem = new DummySystem();
88
- const update = jest.spyOn(dummySystem, 'update');
89
-
90
- return makeEm([dummySystem])
91
- .then((em) => {
92
- em.simulate(7);
93
-
94
- expect(update).toHaveBeenCalledTimes(1);
95
- expect(update).toHaveBeenLastCalledWith(7);
96
- });
97
- });
98
-
99
-
100
- test("call to 'simulate' ticks fixed update correctly", async () => {
101
-
102
- const dummySystem = new DummySystem();
103
- const fixedUpdate = jest.spyOn(dummySystem, 'fixedUpdate');
104
-
105
- const em = await makeEm([dummySystem]);
106
-
107
- em.fixedUpdateStepSize = 1.1;
108
-
109
- em.simulate(3.3001);
110
-
111
- expect(fixedUpdate).toHaveBeenCalledTimes(3);
112
- expect(fixedUpdate).toHaveBeenLastCalledWith(1.1);
113
- });
114
-
115
- test("hasSystem", async () => {
116
-
117
- const dummySystem = new DummySystem();
118
- const em = await makeEm([]);
119
-
120
- expect(em.hasSystem(DummySystem)).toBe(false);
121
-
122
- await em.addSystem(dummySystem);
123
-
124
- expect(em.hasSystem(DummySystem)).toBe(true);
125
- });
126
-
127
- test("addSystem", async () => {
128
- const em = await makeEm([]);
129
-
130
- const s1 = new DummySystem();
131
-
132
- await em.addSystem(s1);
133
-
134
- expect(s1.state.get()).toEqual(SystemState.RUNNING)
135
-
136
- // system is already added, expect silent return
137
- expect(() => em.addSystem(s1)).not.toThrow();
138
-
139
- // 2 systems of the same class are not allowed
140
- expect(() => em.addSystem(new DummySystem())).toThrow(IllegalStateException);
141
- });
142
-
143
- test("add system to running manager", async () => {
144
-
145
- const em = new EntityManager();
146
-
147
- await new Promise((resolve, reject) => em.startup(resolve, reject));
148
-
149
- const system = new DummySystem();
150
-
151
- await em.addSystem(system);
152
-
153
- expect(em.hasSystem(DummySystem)).toBe(true);
154
- });
155
-
156
- test("removeSystem", async () => {
157
-
158
- const system = new DummySystem();
159
-
160
- const em = await makeEm([system]);
161
-
162
- expect(await em.removeSystem(system)).toBe(true);
163
-
164
- expect(em.hasSystem(DummySystem)).toBe(false);
165
-
166
- expect(system.state.get()).toEqual(SystemState.STOPPED);
167
-
168
- // Try again, this time we expect nothing to happen
169
- expect(await em.removeSystem(system)).toEqual(false);
170
- });
171
-
172
- test("attempt to detach dataset when none is attached", () => {
173
- const manager = new EntityManager();
174
-
175
- expect(() => manager.detachDataSet()).not.toThrow();
176
-
177
- // do it second time, in case something changes in the above call
178
- expect(() => manager.detachDataSet()).not.toThrow();
179
- });
180
-
181
- test("getComponentTypeMap with 1 system", async () => {
182
-
183
- const em = await makeEm([
184
- new DummySystem()
185
- ]);
186
-
187
- expect(em.getComponentTypeMap()).toEqual([DummyComponent]);
188
- });
189
-
190
- test("attempting to attach another dataset before detaching previous one should throw", () => {
191
-
192
- const em = new EntityManager();
193
-
194
- em.attachDataSet(new EntityComponentDataset());
195
-
196
- expect(() => em.attachDataSet(new EntityComponentDataset())).toThrow();
197
-
198
- });
199
-
200
- test("attaching same dataset should succeed", () => {
201
-
202
- const em = new EntityManager();
203
-
204
- const ecd = new EntityComponentDataset();
205
- em.attachDataSet(ecd);
206
-
207
- em.attachDataSet(ecd); // second time
208
-
209
- expect(em.dataset).toBe(ecd);
210
- });
@@ -1,184 +0,0 @@
1
- import { jest } from '@jest/globals';
2
- import { noop } from "../../core/function/noop.js";
3
- import GridPosition from "../grid/position/GridPosition.js";
4
- import Entity from "./Entity.js";
5
- import { EntityComponentDataset } from "./EntityComponentDataset.js";
6
- import { EntityObserver } from "./EntityObserver.js";
7
- import { Transform } from "./transform/Transform.js";
8
-
9
- /**
10
- *
11
- * @return {EntityComponentDataset}
12
- */
13
- function makeDataset() {
14
-
15
- const dataset = new EntityComponentDataset();
16
-
17
- dataset.setComponentTypeMap([Transform, GridPosition]);
18
-
19
- return dataset;
20
- }
21
-
22
- test("valid constructor invocation does not throw", () => {
23
- new EntityObserver([Transform, GridPosition], noop, noop);
24
- });
25
-
26
- test("callbacks are not invoked in the constructor", () => {
27
- const completed = jest.fn();
28
- const broken = jest.fn();
29
-
30
- const observer = new EntityObserver([Transform, GridPosition], completed, broken);
31
-
32
- expect(completed).not.toHaveBeenCalled();
33
- expect(broken).not.toHaveBeenCalled();
34
- });
35
-
36
- test("existing entities that match are supplied via callback when attaching", () => {
37
- const completed = jest.fn();
38
- const broken = jest.fn();
39
-
40
-
41
- const dataset = makeDataset();
42
-
43
- const t0 = new Transform();
44
- const g0 = new GridPosition();
45
- const entity0 = new Entity().add(t0).add(g0).build(dataset);
46
-
47
- const t1 = new Transform();
48
- const g1 = new GridPosition();
49
- const entity1 = new Entity().add(t1).add(g1).build(dataset);
50
-
51
- new Entity().add(new Transform()).build(dataset);
52
-
53
- const observer = new EntityObserver([Transform, GridPosition], completed, broken);
54
-
55
- observer.connect(dataset);
56
-
57
- expect(broken).not.toHaveBeenCalled();
58
- expect(completed).toHaveBeenCalledTimes(2);
59
-
60
- expect(completed.mock.calls[0]).toEqual([t0, g0, entity0]);
61
- expect(completed.mock.calls[1]).toEqual([t1, g1, entity1]);
62
- });
63
-
64
- test("completed matches are observed when they happen after attachment", () => {
65
- const completed = jest.fn();
66
- const broken = jest.fn();
67
-
68
- const dataset = makeDataset();
69
-
70
- const t0 = new Transform();
71
- const g0 = new GridPosition();
72
- const entity0 = new Entity().add(t0).build(dataset);
73
-
74
- const observer = new EntityObserver([Transform, GridPosition], completed, broken);
75
-
76
- observer.connect(dataset);
77
-
78
- expect(broken).not.toHaveBeenCalled();
79
- expect(completed).not.toHaveBeenCalled();
80
-
81
- dataset.addComponentToEntity(entity0, g0);
82
-
83
- expect(completed).toHaveBeenCalledTimes(1);
84
-
85
- expect(completed.mock.calls[0]).toEqual([t0, g0, entity0]);
86
- });
87
-
88
- test("broken matches are observed", () => {
89
- const completed = jest.fn();
90
- const broken = jest.fn();
91
-
92
-
93
- const dataset = makeDataset();
94
- const t0 = new Transform();
95
- const g0 = new GridPosition();
96
- const entityBuilder = new Entity().add(t0).add(g0);
97
- const entity0 = entityBuilder.build(dataset);
98
-
99
- const observer = new EntityObserver([Transform, GridPosition], completed, broken);
100
-
101
- observer.connect(dataset);
102
-
103
- entityBuilder.removeComponent(GridPosition);
104
-
105
- expect(broken).toHaveBeenCalledTimes(1);
106
-
107
- expect(broken.mock.calls[0]).toEqual([t0, g0, entity0]);
108
- });
109
-
110
- test("matching entities added after connect are observed", () => {
111
- const completed = jest.fn();
112
- const broken = jest.fn();
113
-
114
-
115
- const dataset = makeDataset();
116
- const t0 = new Transform();
117
- const g0 = new GridPosition();
118
- const entityBuilder = new Entity().add(t0).add(g0);
119
-
120
- const observer = new EntityObserver([Transform, GridPosition], completed, broken);
121
-
122
- const entity0 = entityBuilder.build(dataset);
123
-
124
- observer.connect(dataset);
125
-
126
- expect(completed).toHaveBeenCalledTimes(1);
127
-
128
- expect(completed).toHaveBeenLastCalledWith(t0, g0, entity0);
129
- });
130
-
131
- test("match after connect and break", () => {
132
- const completed = jest.fn();
133
- const broken = jest.fn();
134
-
135
- const dataset = makeDataset();
136
- const t0 = new Transform();
137
- const g0 = new GridPosition();
138
- const entityBuilder = new Entity().add(t0).add(g0);
139
-
140
- const observer = new EntityObserver([Transform, GridPosition], completed, broken);
141
-
142
- const entity0 = entityBuilder.build(dataset);
143
-
144
- //observe completed
145
- observer.connect(dataset);
146
-
147
- expect(completed).toHaveBeenCalledTimes(1);
148
-
149
- expect(completed).toHaveBeenLastCalledWith(t0, g0, entity0);
150
-
151
- //break
152
- entityBuilder.removeComponent(GridPosition);
153
-
154
- expect(broken).toHaveBeenCalledTimes(1);
155
-
156
- expect(broken).toHaveBeenLastCalledWith(t0, g0, entity0);
157
-
158
- //remove last component
159
- entityBuilder.removeComponent(Transform);
160
-
161
- //broken shouldn't be called more
162
- expect(broken).toHaveBeenCalledTimes(1);
163
-
164
- //completed shouldn't be called more
165
- expect(completed).toHaveBeenCalledTimes(1);
166
-
167
- //remove entity
168
- entityBuilder.destroy();
169
-
170
- //broken shouldn't be called more
171
- expect(broken).toHaveBeenCalledTimes(1);
172
-
173
- //completed shouldn't be called more
174
- expect(completed).toHaveBeenCalledTimes(1);
175
- });
176
-
177
- test("disconnect doesn't throw", () => {
178
- const dataset = makeDataset();
179
- const observer = new EntityObserver([Transform, GridPosition], noop, noop);
180
-
181
- observer.connect(dataset);
182
-
183
- observer.disconnect();
184
- });
@@ -1,22 +0,0 @@
1
- import { Animation } from "./Animation.js";
2
- import { AnimationClip } from "./AnimationClip.js";
3
-
4
- test("constructor does not throw", () => {
5
- new Animation()
6
- });
7
-
8
- test("equality", () => {
9
-
10
- const a = new Animation();
11
- const b = new Animation();
12
-
13
- expect(a.equals(b)).toBe(true);
14
-
15
- a.clips.add(new AnimationClip());
16
-
17
- expect(a.equals(b)).toBe(false);
18
-
19
- b.clips.add(new AnimationClip());
20
-
21
- expect(a.equals(b)).toBe(true);
22
- });
@@ -1,5 +0,0 @@
1
- import { AnimationClip } from "./AnimationClip.js";
2
-
3
- test("constructor does not throw", () => {
4
- expect(() => new AnimationClip()).not.toThrow();
5
- });
@@ -1,47 +0,0 @@
1
- import Tag from "./Tag.js";
2
-
3
- test("constructor", () => {
4
- new Tag();
5
- });
6
-
7
- test("containsOneOf", () => {
8
-
9
- const tag = Tag.fromJSON(['a', 'b']);
10
-
11
- expect(tag.containsOneOf([])).toBe(false);
12
- expect(tag.containsOneOf(['c'])).toBe(false);
13
- expect(tag.containsOneOf(['a'])).toBe(true);
14
- expect(tag.containsOneOf(['b'])).toBe(true);
15
- expect(tag.containsOneOf(['a', 'b'])).toBe(true);
16
-
17
- });
18
-
19
- test("hash", () => {
20
-
21
- const tag = Tag.fromJSON(['a', 'b']);
22
-
23
- const hash = tag.hash();
24
-
25
- expect(tag.hash()).toEqual(hash);
26
-
27
- expect(typeof hash).toBe("number");
28
- expect(Number.isInteger(hash)).toBe(true);
29
- });
30
-
31
- test("equals", () => {
32
-
33
-
34
- const a = Tag.fromJSON(['a', 'b']);
35
- const b = Tag.fromJSON([]);
36
- const c = Tag.fromJSON(['a']);
37
- const d = Tag.fromJSON(['b']);
38
- const e = Tag.fromJSON(['a', 'b']);
39
- const f = Tag.fromJSON(['a', 'c']);
40
-
41
- expect(a.equals(b)).toBe(false);
42
- expect(a.equals(c)).toBe(false);
43
- expect(a.equals(d)).toBe(false);
44
- expect(a.equals(e)).toBe(true);
45
- expect(a.equals(f)).toBe(false);
46
-
47
- });
@@ -1,126 +0,0 @@
1
- import { seededRandom } from "../../../../core/math/random/seededRandom.js";
2
- import { DynamicRuleDescriptionTable } from "./DynamicRuleDescriptionTable.js";
3
- import {
4
- createRandomReactiveExpression
5
- } from "../../../../core/model/reactive/model/util/createRandomReactiveExpression.js";
6
- import { ReactiveReference } from "../../../../core/model/reactive/model/terminal/ReactiveReference.js";
7
- import { ReactiveLiteralNumber } from "../../../../core/model/reactive/model/terminal/ReactiveLiteralNumber.js";
8
- import { ReactiveLiteralString } from "../../../../core/model/reactive/model/terminal/ReactiveLiteralString.js";
9
- import { ReactiveLiteralBoolean } from "../../../../core/model/reactive/model/terminal/ReactiveLiteralBoolean.js";
10
- import { DynamicRuleDescription } from "./DynamicRuleDescription.js";
11
- import DataType from "../../../../core/parser/simple/DataType.js";
12
- import { randomFromArray } from "../../../../core/math/random/randomFromArray.js";
13
- import { randomFloatBetween } from "../../../../core/math/random/randomFloatBetween.js";
14
- import { randomIntegerBetween } from "../../../../core/math/random/randomIntegerBetween.js";
15
-
16
- describe.skip('performance', () => {
17
-
18
- test('match performance', () => {
19
- const random = seededRandom(12319);
20
-
21
- const table = new DynamicRuleDescriptionTable();
22
-
23
-
24
- const names = [];
25
-
26
- const NAME_COUNT = 100;
27
- for (let i = 0; i < NAME_COUNT; i++) {
28
- names.push(`n${i}`);
29
- }
30
-
31
- const references = names.map(n => {
32
- const ref = new ReactiveReference(n);
33
-
34
- ref.dataType = DataType.Number;
35
-
36
- return ref;
37
- });
38
-
39
- const literals = [];
40
-
41
- for (let i = 0; i < 5; i++) {
42
- literals.push(ReactiveLiteralNumber.from(randomFloatBetween(random, -10, 10)));
43
- }
44
-
45
- for (let i = 0; i < 5; i++) {
46
- literals.push(ReactiveLiteralString.from(`string-${i}`));
47
- }
48
-
49
- literals.push(ReactiveLiteralBoolean.from(true));
50
- literals.push(ReactiveLiteralBoolean.from(false));
51
-
52
- const terminals = references.concat(literals);
53
-
54
- const expressions = [];
55
-
56
- const EXPRESSION_COUNT = 5000;
57
- for (let i = 0; i < EXPRESSION_COUNT; i++) {
58
-
59
- let exp;
60
-
61
- do {
62
- exp = createRandomReactiveExpression(random, terminals, randomIntegerBetween(random, 3, 15));
63
- } while (exp.dataType !== DataType.Boolean);
64
-
65
- expressions.push(exp);
66
-
67
-
68
- const r = new DynamicRuleDescription();
69
- r.id = `id-${i}`;
70
- r.condition = exp;
71
-
72
- r.build();
73
-
74
- table.add(r);
75
- }
76
-
77
- table.buildIndex();
78
-
79
- const contexts = [];
80
-
81
- const CONTEXT_COUNT = 5000;
82
-
83
- for (let i = 0; i < CONTEXT_COUNT; i++) {
84
- const v = {};
85
-
86
- for (let j = 0; j < NAME_COUNT; j++) {
87
- const roll = random();
88
-
89
- if (roll < 0.03) {
90
- continue;
91
- }
92
-
93
- const name = names[j];
94
-
95
- v[name] = randomIntegerBetween(random, 3, 15);
96
- }
97
-
98
- contexts[i] = v;
99
- }
100
-
101
- const prewarm_random = seededRandom(63);
102
-
103
- // pre-warm code
104
- for (let i = 0; i < 10; i++) {
105
-
106
- const context = randomFromArray(prewarm_random, contexts);
107
-
108
- table.matchBest(context);
109
- }
110
-
111
- const t0 = performance.now();
112
-
113
- for (let i = 0; i < CONTEXT_COUNT; i++) {
114
- const context = contexts[i];
115
-
116
- table.matchBest(context);
117
- }
118
-
119
- const overall_time = (performance.now() - t0) / 1000;
120
-
121
-
122
- const overall_time_ps = overall_time * 1e12;
123
-
124
- console.log(`Time per expression: ${Math.round(overall_time_ps / (CONTEXT_COUNT * EXPRESSION_COUNT))}ps(picoseconds)`);
125
- });
126
- });
@@ -1,13 +0,0 @@
1
- import { FogOfWar } from "./FogOfWar.js";
2
-
3
- test('getWorldClearance', () => {
4
- const fog = new FogOfWar();
5
-
6
- fog.resize(1, 1, 2);
7
-
8
- expect(fog.getWorldClearance(1, 1)).toBe(255);
9
-
10
- fog.reveal(0, 0, 0.5);
11
-
12
- expect(fog.getWorldClearance(1, 1)).toBe(0);
13
- });
@@ -1,100 +0,0 @@
1
- import { UUID } from "./UUID.js";
2
-
3
- test("uniqueness out of 2", () => {
4
- const a = UUID.v1();
5
- const b = UUID.v1();
6
-
7
- expect(a.equals(b)).toBe(false);
8
- });
9
-
10
- test("equality", () => {
11
- const a = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
12
- const b = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
13
-
14
- expect(a.equals(b)).toBe(true);
15
-
16
- b.parse("bb75b300-c89f-11ed-afa1-0242ac120002");
17
-
18
- expect(a.equals(b)).toBe(false);
19
- });
20
-
21
- test("hash stability", () => {
22
- const guid = new UUID();
23
-
24
- expect(guid.hash()).toBe(guid.hash());
25
- });
26
-
27
- test("copy", () => {
28
- const a = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
29
- const a_string = a.toString();
30
-
31
- const b = UUID.parse("bb75b300-c89f-11ed-afa1-0242ac120002");
32
-
33
- expect(a.equals(b)).toBe(false);
34
-
35
- b.copy(a);
36
-
37
- expect(a.equals(b)).toBe(true);
38
-
39
- // make sure that "a" is not changed
40
- expect(a.toString()).toEqual(a_string);
41
- });
42
-
43
- test("to/from JSON consistency", () => {
44
- const a = UUID.parse("bb75b300-c89f-11ed-afa1-0242ac120002");
45
-
46
- const b = new UUID();
47
-
48
- b.fromJSON(a.toJSON());
49
-
50
- expect(b.equals(a)).toBe(true)
51
- });
52
-
53
- test(".data setter performs a copy instead of assignment", () => {
54
- const id = new UUID();
55
-
56
- const data = new Uint8Array(16);
57
-
58
- id.data = data;
59
-
60
- expect(id.data).not.toBe(data);
61
- });
62
-
63
- test(".data set/get", () => {
64
- const a = new UUID();
65
-
66
- const sample_0 = [
67
- 0xFF, 0xFF, 0xFF, 0xFF,
68
- 0xFF, 0xFF, 0xFF, 0xFF,
69
- 0xFF, 0xFF, 0xFF, 0xFF,
70
- 0xFF, 0xFF, 0xFF, 0xFF,
71
- ];
72
-
73
- a.data = sample_0;
74
-
75
- expect(Array.from(a.data)).toEqual(sample_0);
76
-
77
- const sample_1 = [
78
- 0x00, 0x01, 0x02, 0x03,
79
- 0x04, 0x05, 0x06, 0x07,
80
- 0x08, 0x09, 0x0A, 0x0B,
81
- 0x0C, 0x0D, 0x0E, 0x0F,
82
- ];
83
-
84
- a.data = sample_1;
85
-
86
- expect(Array.from(a.data)).toEqual(sample_1);
87
- });
88
-
89
- test("version bits in v4", () => {
90
- const uuid = UUID.v4();
91
-
92
- expect((uuid.data[6] >> 4) & 0xF).toEqual(4);
93
- });
94
-
95
- test("static 'string' method",()=>{
96
- const s = UUID.string();
97
-
98
- expect(typeof s).toBe("string");
99
- expect(s.length).toBe(36);
100
- });