@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,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
- });