com.wallstop-studios.unity-helpers 2.0.0-rc81.7 → 2.0.0-rc81.9

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 (1449) hide show
  1. package/.config/dotnet-tools.json +10 -10
  2. package/.csharpierignore +1 -0
  3. package/.csharpierrc.json +3 -0
  4. package/.editorconfig +184 -184
  5. package/.gitattributes +87 -63
  6. package/.githooks/pre-commit +49 -0
  7. package/.github/dependabot.yml +9 -9
  8. package/.github/workflows/csharpier.yml +135 -0
  9. package/.github/workflows/lint-doc-links.yml +27 -0
  10. package/.github/workflows/markdown-json.yml +41 -0
  11. package/.github/workflows/npm-publish.yml +75 -75
  12. package/.lychee.toml +26 -0
  13. package/.markdownlint.json +21 -0
  14. package/.markdownlintignore +8 -0
  15. package/.pre-commit-config.yaml +39 -22
  16. package/.prettierignore +22 -0
  17. package/.prettierrc.json +20 -0
  18. package/AGENTS.md +52 -0
  19. package/{Third Party Notices.md.meta → AGENTS.md.meta} +7 -7
  20. package/CHANGELOG.md.meta +7 -7
  21. package/DATA_STRUCTURES.md +324 -0
  22. package/DATA_STRUCTURES.md.meta +7 -0
  23. package/Docs/Images/attribute_resolution.svg +40 -0
  24. package/Docs/Images/attribute_resolution.svg.meta +7 -0
  25. package/Docs/Images/bitset.svg +47 -0
  26. package/Docs/Images/bitset.svg.meta +7 -0
  27. package/Docs/Images/concave_hull.svg +30 -0
  28. package/Docs/Images/concave_hull.svg.meta +7 -0
  29. package/Docs/Images/convex_hull.svg +29 -0
  30. package/Docs/Images/convex_hull.svg.meta +7 -0
  31. package/Docs/Images/cyclic_buffer.svg +37 -0
  32. package/Docs/Images/cyclic_buffer.svg.meta +7 -0
  33. package/Docs/Images/data_distribution_decision.svg +88 -0
  34. package/Docs/Images/data_distribution_decision.svg.meta +7 -0
  35. package/Docs/Images/deque.svg +64 -0
  36. package/Docs/Images/deque.svg.meta +7 -0
  37. package/Docs/Images/deque_queue.svg +107 -0
  38. package/Docs/Images/deque_queue.svg.meta +7 -0
  39. package/Docs/Images/disjoint_set.svg +47 -0
  40. package/Docs/Images/disjoint_set.svg.meta +7 -0
  41. package/Docs/Images/effects_pipeline.svg +59 -0
  42. package/Docs/Images/effects_pipeline.svg.meta +7 -0
  43. package/Docs/Images/geometry_edge_cases.svg +61 -0
  44. package/Docs/Images/geometry_edge_cases.svg.meta +7 -0
  45. package/Docs/Images/heap.svg +56 -0
  46. package/Docs/Images/heap.svg.meta +7 -0
  47. package/Docs/Images/kdtree_2d.svg +38 -0
  48. package/Docs/Images/kdtree_2d.svg.meta +7 -0
  49. package/Docs/Images/kdtree_3d.svg +83 -0
  50. package/Docs/Images/kdtree_3d.svg.meta +7 -0
  51. package/Docs/Images/octree_3d.svg +79 -0
  52. package/Docs/Images/octree_3d.svg.meta +7 -0
  53. package/Docs/Images/polyline_simplify.svg +18 -0
  54. package/Docs/Images/polyline_simplify.svg.meta +7 -0
  55. package/Docs/Images/quadtree_2d.svg +37 -0
  56. package/Docs/Images/quadtree_2d.svg.meta +7 -0
  57. package/Docs/Images/query_boundaries.svg +38 -0
  58. package/Docs/Images/query_boundaries.svg.meta +7 -0
  59. package/Docs/Images/random_generators.svg +105 -0
  60. package/Docs/Images/random_generators.svg.meta +7 -0
  61. package/Docs/Images/reflection_scan.svg +33 -0
  62. package/Docs/Images/reflection_scan.svg.meta +7 -0
  63. package/Docs/Images/relational_wiring.svg +75 -0
  64. package/Docs/Images/relational_wiring.svg.meta +7 -0
  65. package/Docs/Images/rtree_2d.svg +27 -0
  66. package/Docs/Images/rtree_2d.svg.meta +7 -0
  67. package/Docs/Images/rtree_3d.svg +79 -0
  68. package/Docs/Images/rtree_3d.svg.meta +7 -0
  69. package/Docs/Images/serialization_flow.svg +50 -0
  70. package/Docs/Images/serialization_flow.svg.meta +7 -0
  71. package/Docs/Images/singletons_lifecycle.svg +54 -0
  72. package/Docs/Images/singletons_lifecycle.svg.meta +7 -0
  73. package/Docs/Images/sparse_set.svg +54 -0
  74. package/Docs/Images/sparse_set.svg.meta +7 -0
  75. package/Docs/Images/trie.svg +55 -0
  76. package/Docs/Images/trie.svg.meta +7 -0
  77. package/Docs/Images.meta +8 -0
  78. package/Docs.meta +8 -0
  79. package/EDITOR_TOOLS_GUIDE.md +1976 -0
  80. package/EDITOR_TOOLS_GUIDE.md.meta +7 -0
  81. package/EFFECTS_SYSTEM.md +242 -0
  82. package/EFFECTS_SYSTEM.md.meta +7 -0
  83. package/EFFECTS_SYSTEM_TUTORIAL.md +467 -0
  84. package/EFFECTS_SYSTEM_TUTORIAL.md.meta +7 -0
  85. package/Editor/AnimationEventEditor.cs +1393 -874
  86. package/Editor/AnimationEventEditor.cs.meta +11 -11
  87. package/Editor/AssemblyInfo.cs +4 -0
  88. package/Editor/AssemblyInfo.cs.meta +3 -0
  89. package/Editor/AssetProcessors/SpriteLabelProcessor.cs +138 -111
  90. package/Editor/AssetProcessors/SpriteLabelProcessor.cs.meta +2 -2
  91. package/Editor/AssetProcessors.meta +2 -2
  92. package/Editor/Core/Helper/AnimationEventHelpers.cs +204 -0
  93. package/{Runtime/Core/DataStructure/ISpatialTree.cs.meta → Editor/Core/Helper/AnimationEventHelpers.cs.meta} +11 -11
  94. package/Editor/Core/Helper.meta +8 -0
  95. package/Editor/Core.meta +8 -0
  96. package/Editor/CustomDrawers/IntDropdownDrawer.cs +46 -46
  97. package/Editor/CustomDrawers/IntDropdownDrawer.cs.meta +2 -2
  98. package/Editor/CustomDrawers/StringInListeDrawer.cs +135 -135
  99. package/Editor/CustomDrawers/StringInListeDrawer.cs.meta +2 -2
  100. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs +105 -105
  101. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs.meta +2 -2
  102. package/Editor/CustomDrawers.meta +2 -2
  103. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +32 -32
  104. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  105. package/Editor/CustomEditors/PersistentDirectoryGUI.cs +799 -799
  106. package/Editor/CustomEditors/PersistentDirectoryGUI.cs.meta +2 -2
  107. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs +38 -40
  108. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs.meta +2 -2
  109. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs +685 -413
  110. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs.meta +2 -2
  111. package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +146 -0
  112. package/{Runtime/Core/DataStructure/KDTree.cs.meta → Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs.meta} +11 -11
  113. package/Editor/CustomEditors.meta +2 -2
  114. package/Editor/Extensions/SerializedPropertyExtensions.cs +217 -190
  115. package/Editor/Extensions/SerializedPropertyExtensions.cs.meta +2 -2
  116. package/Editor/Extensions/UnityExtensions.cs +50 -26
  117. package/Editor/Extensions/UnityExtensions.cs.meta +2 -2
  118. package/Editor/Extensions.meta +2 -2
  119. package/Editor/FitTextureSizeWindow.cs +785 -332
  120. package/Editor/FitTextureSizeWindow.cs.meta +2 -2
  121. package/Editor/Persistence/MultiFileSelectorPersistenceManager.cs +62 -0
  122. package/{Runtime/Core/DataStructure/QuadTree.cs.meta → Editor/Persistence/MultiFileSelectorPersistenceManager.cs.meta} +11 -11
  123. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs +65 -0
  124. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs.meta +11 -0
  125. package/Editor/Persistence.meta +8 -0
  126. package/Editor/PersistentDirectorySettings.cs +529 -248
  127. package/Editor/PersistentDirectorySettings.cs.meta +2 -2
  128. package/Editor/PrefabChecker.cs +1329 -741
  129. package/Editor/PrefabChecker.cs.meta +11 -11
  130. package/Editor/Sprites/AnimationCopier.cs +1518 -789
  131. package/Editor/Sprites/AnimationCopier.cs.meta +2 -2
  132. package/Editor/Sprites/AnimationCreator.cs +1532 -881
  133. package/Editor/Sprites/AnimationCreator.cs.meta +11 -11
  134. package/Editor/Sprites/AnimationViewerWindow.cs +1634 -1522
  135. package/Editor/Sprites/AnimationViewerWindow.cs.meta +2 -2
  136. package/Editor/Sprites/ScriptableSpriteAtlas.cs +251 -178
  137. package/Editor/Sprites/ScriptableSpriteAtlas.cs.meta +2 -2
  138. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs +1470 -1026
  139. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs.meta +2 -2
  140. package/Editor/Sprites/SpriteCropper.cs +1013 -523
  141. package/Editor/Sprites/SpriteCropper.cs.meta +2 -2
  142. package/Editor/Sprites/SpritePivotAdjustor.cs +605 -265
  143. package/Editor/Sprites/SpritePivotAdjustor.cs.meta +2 -2
  144. package/Editor/Sprites/SpriteSettingsApplier.cs +942 -918
  145. package/Editor/Sprites/SpriteSettingsApplier.cs.meta +2 -2
  146. package/Editor/Sprites/SpriteSettingsApplierAPI.cs +441 -0
  147. package/Editor/Sprites/SpriteSettingsApplierAPI.cs.meta +11 -0
  148. package/Editor/Sprites/SpriteSettingsProfileCollection.cs +12 -0
  149. package/Editor/Sprites/SpriteSettingsProfileCollection.cs.meta +11 -0
  150. package/Editor/Sprites/SpriteSheetAnimationCreator.cs +1586 -1537
  151. package/Editor/Sprites/SpriteSheetAnimationCreator.cs.meta +2 -2
  152. package/Editor/Sprites/TexturePlatformNameHelper.cs +78 -0
  153. package/Editor/Sprites/TexturePlatformNameHelper.cs.meta +11 -0
  154. package/Editor/Sprites/TextureResizerWizard.cs +434 -175
  155. package/Editor/Sprites/TextureResizerWizard.cs.meta +2 -2
  156. package/Editor/Sprites/TextureSettingsApplierAPI.cs +359 -0
  157. package/Editor/Sprites/TextureSettingsApplierAPI.cs.meta +11 -0
  158. package/Editor/Sprites/TextureSettingsApplierWindow.cs +605 -0
  159. package/Editor/Sprites/TextureSettingsApplierWindow.cs.meta +11 -0
  160. package/Editor/Sprites.meta +2 -2
  161. package/Editor/Styles/AnimationViewer.uss +115 -115
  162. package/Editor/Styles/AnimationViewer.uss.meta +2 -2
  163. package/Editor/Styles/AnimationViewer.uxml +56 -56
  164. package/Editor/Styles/AnimationViewer.uxml.meta +2 -2
  165. package/Editor/Styles/SpriteSheetAnimationCreator.uss +10 -0
  166. package/Editor/Styles/SpriteSheetAnimationCreator.uss.meta +11 -0
  167. package/Editor/Styles.meta +2 -2
  168. package/Editor/Tags/AttributeMetadataCacheEditor.cs +46 -0
  169. package/Editor/Tags/AttributeMetadataCacheEditor.cs.meta +11 -0
  170. package/Editor/Tags/AttributeMetadataCacheGenerator.cs +258 -0
  171. package/Editor/Tags/AttributeMetadataCacheGenerator.cs.meta +11 -0
  172. package/Editor/Tags.meta +8 -0
  173. package/Editor/Tools/ImageBlurTool.cs +451 -409
  174. package/Editor/Tools/ImageBlurTool.cs.meta +2 -2
  175. package/Editor/Tools.meta +2 -2
  176. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
  177. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
  178. package/Editor/Utils/EditorUi.cs +228 -0
  179. package/Editor/Utils/EditorUi.cs.meta +11 -0
  180. package/Editor/Utils/EditorUtilities.cs +22 -22
  181. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  182. package/Editor/Utils/ScriptableObjectSingletonCreator.cs +633 -52
  183. package/Editor/Utils/ScriptableObjectSingletonCreator.cs.meta +2 -2
  184. package/Editor/Utils.meta +8 -8
  185. package/Editor/Visuals/EnhancedImageEditor.cs +160 -160
  186. package/Editor/Visuals/EnhancedImageEditor.cs.meta +11 -11
  187. package/Editor/Visuals.meta +2 -2
  188. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +14 -18
  189. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  190. package/Editor.meta +8 -8
  191. package/GETTING_STARTED.md +425 -0
  192. package/GETTING_STARTED.md.meta +7 -0
  193. package/GLOSSARY.md +313 -0
  194. package/GLOSSARY.md.meta +7 -0
  195. package/HULLS.md +45 -0
  196. package/HULLS.md.meta +7 -0
  197. package/INDEX.md +429 -0
  198. package/INDEX.md.meta +7 -0
  199. package/LICENSE +21 -21
  200. package/LICENSE.md +7 -7
  201. package/LICENSE.md.meta +7 -7
  202. package/LICENSE.meta +7 -7
  203. package/MATH_AND_EXTENSIONS.md +316 -0
  204. package/MATH_AND_EXTENSIONS.md.meta +7 -0
  205. package/RANDOM_PERFORMANCE.md +140 -0
  206. package/RANDOM_PERFORMANCE.md.meta +7 -0
  207. package/README.md +3195 -188
  208. package/README.md.meta +7 -7
  209. package/REFLECTION_HELPERS.md +272 -0
  210. package/REFLECTION_HELPERS.md.meta +7 -0
  211. package/RELATIONAL_COMPONENTS.md +543 -0
  212. package/RELATIONAL_COMPONENTS.md.meta +7 -0
  213. package/Runtime/AssemblyInfo.cs +7 -0
  214. package/Runtime/AssemblyInfo.cs.meta +11 -0
  215. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  216. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  217. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +499 -278
  218. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  219. package/Runtime/Binaries/System.IO.Pipelines.dll +0 -0
  220. package/Runtime/Binaries/System.IO.Pipelines.dll.meta +33 -0
  221. package/Runtime/Binaries/System.IO.Pipelines.xml +702 -0
  222. package/Runtime/Binaries/System.IO.Pipelines.xml.meta +7 -0
  223. package/Runtime/Binaries/System.Text.Encodings.Web.dll +0 -0
  224. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  225. package/Runtime/Binaries/System.Text.Encodings.Web.xml +1084 -1079
  226. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  227. package/Runtime/Binaries/System.Text.Json.dll +0 -0
  228. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  229. package/Runtime/Binaries/System.Text.Json.xml +10217 -8116
  230. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  231. package/Runtime/Binaries.meta +8 -8
  232. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +10 -138
  233. package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -11
  234. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs +841 -0
  235. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs.meta +11 -0
  236. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +284 -226
  237. package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -11
  238. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
  239. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs.meta +11 -11
  240. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs +15 -15
  241. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs.meta +2 -2
  242. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs +36 -0
  243. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs.meta +11 -0
  244. package/Runtime/Core/Attributes/IntDropdownAttribute.cs +14 -14
  245. package/Runtime/Core/Attributes/IntDropdownAttribute.cs.meta +2 -2
  246. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  247. package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -11
  248. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  249. package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -11
  250. package/Runtime/Core/Attributes/ParentComponentAttribute.cs +376 -0
  251. package/Runtime/Core/Attributes/{ParentComponent.cs.meta → ParentComponentAttribute.cs.meta} +11 -11
  252. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +107 -0
  253. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs.meta +11 -0
  254. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +61 -14
  255. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -11
  256. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs +331 -0
  257. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs.meta +11 -0
  258. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs +15 -15
  259. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs.meta +2 -2
  260. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +264 -137
  261. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  262. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +115 -106
  263. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  264. package/Runtime/Core/Attributes/ValueHelpers.cs +10 -0
  265. package/Runtime/Core/Attributes/ValueHelpers.cs.meta +3 -0
  266. package/Runtime/Core/Attributes/WShowIfAttribute.cs +24 -24
  267. package/Runtime/Core/Attributes/WShowIfAttribute.cs.meta +2 -2
  268. package/Runtime/Core/Attributes.meta +8 -8
  269. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +192 -92
  270. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -11
  271. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +268 -185
  272. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -11
  273. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +360 -305
  274. package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -11
  275. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +146 -80
  276. package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -11
  277. package/Runtime/Core/DataStructure/Adapters.meta +8 -8
  278. package/Runtime/Core/DataStructure/BitSet.cs +626 -0
  279. package/Runtime/Core/DataStructure/BitSet.cs.meta +11 -0
  280. package/Runtime/Core/DataStructure/BoundingBox3D.cs +405 -0
  281. package/Runtime/Core/DataStructure/BoundingBox3D.cs.meta +11 -0
  282. package/Runtime/Core/DataStructure/Circle.cs +203 -50
  283. package/Runtime/Core/DataStructure/Circle.cs.meta +11 -11
  284. package/Runtime/Core/DataStructure/CyclicBuffer.cs +489 -266
  285. package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -11
  286. package/Runtime/Core/DataStructure/Deque.cs +561 -0
  287. package/Runtime/Core/DataStructure/Deque.cs.meta +11 -0
  288. package/Runtime/Core/DataStructure/DisjointSet.cs +483 -0
  289. package/Runtime/Core/DataStructure/DisjointSet.cs.meta +11 -0
  290. package/Runtime/Core/DataStructure/Heap.cs +514 -0
  291. package/Runtime/Core/DataStructure/Heap.cs.meta +11 -0
  292. package/Runtime/Core/DataStructure/{ISpatialTree.cs → ISpatialTree2D.cs} +25 -21
  293. package/Runtime/Core/DataStructure/ISpatialTree2D.cs.meta +11 -0
  294. package/Runtime/Core/DataStructure/ISpatialTree3D.cs +33 -0
  295. package/Runtime/Core/DataStructure/ISpatialTree3D.cs.meta +11 -0
  296. package/Runtime/Core/DataStructure/ImmutableBitSet.cs +398 -0
  297. package/Runtime/Core/DataStructure/ImmutableBitSet.cs.meta +3 -0
  298. package/Runtime/Core/DataStructure/KDTree2D.cs +852 -0
  299. package/Runtime/Core/DataStructure/KDTree2D.cs.meta +11 -0
  300. package/Runtime/Core/DataStructure/KDTree3D.cs +911 -0
  301. package/Runtime/Core/DataStructure/KDTree3D.cs.meta +11 -0
  302. package/Runtime/Core/DataStructure/OctTree3D.cs +983 -0
  303. package/Runtime/Core/DataStructure/OctTree3D.cs.meta +11 -0
  304. package/Runtime/Core/DataStructure/PriorityQueue.cs +194 -0
  305. package/Runtime/Core/DataStructure/PriorityQueue.cs.meta +11 -0
  306. package/Runtime/Core/DataStructure/QuadTree2D.cs +722 -0
  307. package/Runtime/Core/DataStructure/QuadTree2D.cs.meta +11 -0
  308. package/Runtime/Core/DataStructure/RTree2D.cs +704 -0
  309. package/Runtime/Core/DataStructure/{RTree.cs.meta → RTree2D.cs.meta} +11 -11
  310. package/Runtime/Core/DataStructure/RTree3D.cs +775 -0
  311. package/Runtime/Core/DataStructure/RTree3D.cs.meta +11 -0
  312. package/Runtime/Core/DataStructure/SparseSet.cs +597 -0
  313. package/Runtime/Core/DataStructure/SparseSet.cs.meta +11 -0
  314. package/Runtime/Core/DataStructure/SpatialHash2D.cs +312 -0
  315. package/Runtime/Core/DataStructure/SpatialHash2D.cs.meta +3 -0
  316. package/Runtime/Core/DataStructure/SpatialHash3D.cs +341 -0
  317. package/Runtime/Core/DataStructure/SpatialHash3D.cs.meta +11 -0
  318. package/Runtime/Core/DataStructure/Sphere.cs +264 -0
  319. package/Runtime/Core/DataStructure/Sphere.cs.meta +11 -0
  320. package/Runtime/Core/DataStructure/StringWrapper.cs +115 -91
  321. package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -11
  322. package/Runtime/Core/DataStructure/TimedCache.cs +88 -66
  323. package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -11
  324. package/Runtime/Core/DataStructure/Trie.cs +660 -359
  325. package/Runtime/Core/DataStructure/Trie.cs.meta +2 -2
  326. package/Runtime/Core/DataStructure.meta +8 -8
  327. package/Runtime/Core/Extension/AnimatorExtensions.cs +40 -25
  328. package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -11
  329. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +404 -110
  330. package/Runtime/Core/Extension/AsyncOperationExtensions.cs.meta +2 -2
  331. package/Runtime/Core/Extension/CircleExtensions.cs +125 -25
  332. package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -11
  333. package/Runtime/Core/Extension/ColorExtensions.cs +983 -644
  334. package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -11
  335. package/Runtime/Core/Extension/DictionaryExtensions.cs +606 -299
  336. package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -11
  337. package/Runtime/Core/Extension/DirectionExtensions.cs +377 -213
  338. package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -11
  339. package/Runtime/Core/Extension/EnumExtensions.cs +535 -137
  340. package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
  341. package/Runtime/Core/Extension/IEnumerableExtensions.cs +341 -124
  342. package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -11
  343. package/Runtime/Core/Extension/IListExtensions.cs +767 -248
  344. package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -11
  345. package/Runtime/Core/Extension/IReadonlyListExtensions.cs +687 -37
  346. package/Runtime/Core/Extension/IReadonlyListExtensions.cs.meta +2 -2
  347. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs +292 -0
  348. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs.meta +3 -0
  349. package/Runtime/Core/Extension/RandomExtensions.cs +938 -109
  350. package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -11
  351. package/Runtime/Core/Extension/StringExtensions.cs +1635 -239
  352. package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -11
  353. package/Runtime/Core/Extension/UnityExtensions.cs +4555 -1689
  354. package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -11
  355. package/Runtime/Core/Extension/WallstopStudiosLogger.cs +271 -245
  356. package/Runtime/Core/Extension/WallstopStudiosLogger.cs.meta +11 -11
  357. package/Runtime/Core/Extension.meta +8 -8
  358. package/Runtime/Core/Helper/ArrayConverter.cs +73 -39
  359. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  360. package/Runtime/Core/Helper/AssignUtilities.cs +33 -14
  361. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  362. package/Runtime/Core/Helper/DirectoryHelper.cs +210 -196
  363. package/Runtime/Core/Helper/DirectoryHelper.cs.meta +2 -2
  364. package/Runtime/Core/Helper/Enumerables.cs +51 -17
  365. package/Runtime/Core/Helper/Enumerables.cs.meta +11 -11
  366. package/Runtime/Core/Helper/FileHelper.cs +97 -77
  367. package/Runtime/Core/Helper/FileHelper.cs.meta +2 -2
  368. package/Runtime/Core/Helper/FormattingHelpers.cs +49 -38
  369. package/Runtime/Core/Helper/FormattingHelpers.cs.meta +2 -2
  370. package/Runtime/Core/Helper/FuncBasedComparer.cs +29 -0
  371. package/Runtime/Core/Helper/FuncBasedComparer.cs.meta +3 -0
  372. package/Runtime/Core/Helper/Geometry.cs +65 -43
  373. package/Runtime/Core/Helper/Geometry.cs.meta +11 -11
  374. package/Runtime/Core/Helper/Helpers.cs +1271 -831
  375. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  376. package/Runtime/Core/Helper/IterationHelpers.cs +83 -32
  377. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  378. package/Runtime/Core/Helper/LifetimeHelpers.cs +20 -13
  379. package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -11
  380. package/Runtime/Core/Helper/LineHelper.cs +259 -194
  381. package/Runtime/Core/Helper/LineHelper.cs.meta +2 -2
  382. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs +549 -539
  383. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs.meta +2 -2
  384. package/Runtime/Core/Helper/Logging.meta +2 -2
  385. package/Runtime/Core/Helper/Objects.cs +477 -769
  386. package/Runtime/Core/Helper/Objects.cs.meta +11 -11
  387. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  388. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  389. package/Runtime/Core/Helper/Partials/MathHelpers.cs +45 -30
  390. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  391. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +506 -400
  392. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  393. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +393 -377
  394. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  395. package/Runtime/Core/Helper/Partials.meta +2 -2
  396. package/Runtime/Core/Helper/PathHelper.cs +42 -15
  397. package/Runtime/Core/Helper/PathHelper.cs.meta +2 -2
  398. package/Runtime/Core/Helper/ReflectionHelpers.cs +5287 -1963
  399. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  400. package/Runtime/Core/Helper/ReverseComparer.cs +33 -0
  401. package/Runtime/Core/Helper/ReverseComparer.cs.meta +3 -0
  402. package/Runtime/Core/Helper/SceneHelper.cs +251 -224
  403. package/Runtime/Core/Helper/SceneHelper.cs.meta +2 -2
  404. package/Runtime/Core/Helper/SpriteHelpers.cs +50 -41
  405. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  406. package/Runtime/Core/Helper/StringInList.cs +61 -35
  407. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  408. package/Runtime/Core/Helper/TestAssemblyHelper.cs +134 -0
  409. package/Runtime/Core/Helper/TestAssemblyHelper.cs.meta +11 -0
  410. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +100 -82
  411. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs.meta +2 -2
  412. package/Runtime/Core/Helper/WallMath.cs +672 -166
  413. package/Runtime/Core/Helper/WallMath.cs.meta +11 -11
  414. package/Runtime/Core/Helper.meta +8 -8
  415. package/Runtime/Core/Math/Line2D.cs +263 -0
  416. package/Runtime/Core/Math/Line2D.cs.meta +11 -0
  417. package/Runtime/Core/Math/Line3D.cs +452 -0
  418. package/Runtime/Core/Math/Line3D.cs.meta +11 -0
  419. package/Runtime/Core/Math/Parabola.cs +241 -47
  420. package/Runtime/Core/Math/Parabola.cs.meta +11 -11
  421. package/Runtime/Core/Math/PointPolygonCheck.cs +175 -36
  422. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  423. package/Runtime/Core/Math/Range.cs +157 -92
  424. package/Runtime/Core/Math/Range.cs.meta +11 -11
  425. package/Runtime/Core/Math.meta +8 -8
  426. package/Runtime/Core/Model/Direction.cs +25 -43
  427. package/Runtime/Core/Model/Direction.cs.meta +11 -11
  428. package/Runtime/Core/Model.meta +8 -8
  429. package/Runtime/Core/OneOf/FastOneOf.cs +252 -152
  430. package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -11
  431. package/Runtime/Core/OneOf/FastOneOf2.cs +198 -0
  432. package/Runtime/Core/OneOf/FastOneOf2.cs.meta +11 -0
  433. package/Runtime/Core/OneOf/FastOneOf4.cs +324 -0
  434. package/Runtime/Core/OneOf/FastOneOf4.cs.meta +11 -0
  435. package/Runtime/Core/OneOf/None.cs +30 -4
  436. package/Runtime/Core/OneOf/None.cs.meta +11 -11
  437. package/Runtime/Core/OneOf.meta +8 -8
  438. package/Runtime/Core/Random/AbstractRandom.cs +1318 -655
  439. package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -11
  440. package/Runtime/Core/Random/DotNetRandom.cs +118 -54
  441. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  442. package/Runtime/Core/Random/IRandom.cs +203 -161
  443. package/Runtime/Core/Random/IRandom.cs.meta +11 -11
  444. package/Runtime/Core/Random/IllusionFlow.cs +171 -107
  445. package/Runtime/Core/Random/IllusionFlow.cs.meta +2 -2
  446. package/Runtime/Core/Random/LinearCongruentialGenerator.cs +90 -49
  447. package/Runtime/Core/Random/LinearCongruentialGenerator.cs.meta +2 -2
  448. package/Runtime/Core/Random/NativePcgRandom.cs +139 -97
  449. package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -11
  450. package/Runtime/Core/Random/PRNG.cs +21 -7
  451. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  452. package/Runtime/Core/Random/PcgRandom.cs +243 -149
  453. package/Runtime/Core/Random/PcgRandom.cs.meta +11 -11
  454. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  455. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  456. package/Runtime/Core/Random/RandomComparer.cs +34 -0
  457. package/Runtime/Core/Random/RandomComparer.cs.meta +3 -0
  458. package/Runtime/Core/Random/RandomState.cs +206 -131
  459. package/Runtime/Core/Random/RandomState.cs.meta +11 -11
  460. package/Runtime/Core/Random/RandomUtilities.cs +55 -26
  461. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  462. package/Runtime/Core/Random/RomuDuo.cs +171 -116
  463. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  464. package/Runtime/Core/Random/SplitMix64.cs +134 -94
  465. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  466. package/Runtime/Core/Random/SquirrelRandom.cs +127 -84
  467. package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -11
  468. package/Runtime/Core/Random/SystemRandom.cs +203 -162
  469. package/Runtime/Core/Random/SystemRandom.cs.meta +11 -11
  470. package/Runtime/Core/Random/ThreadLocalRandom.cs +25 -12
  471. package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -11
  472. package/Runtime/Core/Random/UnityRandom.cs +109 -57
  473. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  474. package/Runtime/Core/Random/WyRandom.cs +158 -121
  475. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  476. package/Runtime/Core/Random/XorShiftRandom.cs +106 -52
  477. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  478. package/Runtime/Core/Random/XoroShiroRandom.cs +184 -119
  479. package/Runtime/Core/Random/XoroShiroRandom.cs.meta +2 -2
  480. package/Runtime/Core/Random.meta +8 -8
  481. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs +248 -0
  482. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs.meta +11 -0
  483. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs +119 -0
  484. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs.meta +11 -0
  485. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs +74 -0
  486. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs.meta +11 -0
  487. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs +132 -0
  488. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs.meta +11 -0
  489. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs +135 -0
  490. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs.meta +11 -0
  491. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs +98 -0
  492. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs.meta +11 -0
  493. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs +123 -0
  494. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs.meta +11 -0
  495. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
  496. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs.meta +2 -2
  497. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs +112 -0
  498. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs.meta +11 -0
  499. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs +62 -0
  500. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs.meta +11 -0
  501. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs +72 -0
  502. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs.meta +11 -0
  503. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs +80 -0
  504. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs.meta +11 -0
  505. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +36 -36
  506. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs.meta +2 -2
  507. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs +245 -0
  508. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs.meta +11 -0
  509. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs +92 -0
  510. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs.meta +11 -0
  511. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs +119 -0
  512. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs.meta +11 -0
  513. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs +72 -0
  514. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs.meta +11 -0
  515. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs +95 -0
  516. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs.meta +11 -0
  517. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +237 -218
  518. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs.meta +2 -2
  519. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs +142 -0
  520. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs.meta +11 -0
  521. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs +135 -0
  522. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs.meta +11 -0
  523. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs +79 -0
  524. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs.meta +11 -0
  525. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs +76 -0
  526. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs.meta +11 -0
  527. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs +88 -0
  528. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs.meta +11 -0
  529. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs +106 -0
  530. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs.meta +11 -0
  531. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs +71 -0
  532. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs.meta +11 -0
  533. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs +80 -0
  534. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs.meta +11 -0
  535. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs +76 -0
  536. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs.meta +11 -0
  537. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs +115 -0
  538. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs.meta +11 -0
  539. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs +84 -0
  540. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs.meta +11 -0
  541. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs +88 -0
  542. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs.meta +11 -0
  543. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs +87 -0
  544. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs.meta +11 -0
  545. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs +264 -0
  546. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs.meta +11 -0
  547. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +158 -0
  548. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs.meta +11 -0
  549. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs +103 -0
  550. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs.meta +11 -0
  551. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs +121 -0
  552. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs.meta +11 -0
  553. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs +54 -0
  554. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs.meta +11 -0
  555. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +30 -28
  556. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs.meta +2 -2
  557. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +72 -74
  558. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -11
  559. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs +72 -0
  560. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs.meta +11 -0
  561. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +80 -81
  562. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -11
  563. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs +80 -0
  564. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs.meta +11 -0
  565. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
  566. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs.meta +2 -2
  567. package/Runtime/Core/Serialization/JsonConverters.meta +8 -8
  568. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +383 -0
  569. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs.meta +11 -0
  570. package/Runtime/Core/Serialization/Serializer.cs +2020 -195
  571. package/Runtime/Core/Serialization/Serializer.cs.meta +11 -11
  572. package/Runtime/Core/Serialization.meta +8 -8
  573. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +228 -228
  574. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -11
  575. package/Runtime/Core/Threading.meta +8 -8
  576. package/Runtime/Core.meta +8 -8
  577. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +185 -0
  578. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs.meta +11 -0
  579. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +109 -0
  580. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs.meta +11 -0
  581. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +78 -0
  582. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs.meta +11 -0
  583. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +83 -0
  584. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs.meta +11 -0
  585. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef +30 -0
  586. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef.meta +7 -0
  587. package/Runtime/Integrations/VContainer.meta +8 -0
  588. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +180 -0
  589. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs.meta +11 -0
  590. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +105 -0
  591. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs.meta +11 -0
  592. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +72 -0
  593. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs.meta +11 -0
  594. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +87 -0
  595. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs.meta +11 -0
  596. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef +30 -0
  597. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef.meta +7 -0
  598. package/Runtime/Integrations/Zenject.meta +8 -0
  599. package/Runtime/Integrations.meta +8 -0
  600. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  601. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  602. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  603. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  604. package/Runtime/Protobuf-Net.meta +8 -8
  605. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs +11 -0
  606. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs.meta +11 -0
  607. package/Runtime/Tags/Attribute.cs +399 -205
  608. package/Runtime/Tags/Attribute.cs.meta +2 -2
  609. package/Runtime/Tags/AttributeEffect.cs +372 -281
  610. package/Runtime/Tags/AttributeEffect.cs.meta +2 -2
  611. package/Runtime/Tags/AttributeMetadataCache.cs +503 -0
  612. package/Runtime/Tags/AttributeMetadataCache.cs.meta +11 -0
  613. package/Runtime/Tags/AttributeMetadataFilters.cs +108 -0
  614. package/Runtime/Tags/AttributeMetadataFilters.cs.meta +11 -0
  615. package/Runtime/Tags/AttributeModification.cs +132 -48
  616. package/Runtime/Tags/AttributeModification.cs.meta +2 -2
  617. package/Runtime/Tags/AttributeUtilities.cs +376 -209
  618. package/Runtime/Tags/AttributeUtilities.cs.meta +2 -2
  619. package/Runtime/Tags/AttributesComponent.cs +237 -163
  620. package/Runtime/Tags/AttributesComponent.cs.meta +2 -2
  621. package/Runtime/Tags/CollisionSenses.cs +117 -91
  622. package/Runtime/Tags/CollisionSenses.cs.meta +2 -2
  623. package/Runtime/Tags/CosmeticEffectComponent.cs +112 -50
  624. package/Runtime/Tags/CosmeticEffectComponent.cs.meta +2 -2
  625. package/Runtime/Tags/CosmeticEffectData.cs +109 -63
  626. package/Runtime/Tags/CosmeticEffectData.cs.meta +2 -2
  627. package/Runtime/Tags/EffectHandle.cs +150 -65
  628. package/Runtime/Tags/EffectHandle.cs.meta +2 -2
  629. package/Runtime/Tags/EffectHandler.cs +470 -393
  630. package/Runtime/Tags/EffectHandler.cs.meta +2 -2
  631. package/Runtime/Tags/ModificationAction.cs +60 -9
  632. package/Runtime/Tags/ModificationAction.cs.meta +2 -2
  633. package/Runtime/Tags/ModifierDurationType.cs +71 -13
  634. package/Runtime/Tags/ModifierDurationType.cs.meta +2 -2
  635. package/Runtime/Tags/TagHandler.cs +373 -158
  636. package/Runtime/Tags/TagHandler.cs.meta +2 -2
  637. package/Runtime/Tags.meta +2 -2
  638. package/Runtime/Utils/AnimationEventEqualityComparer.cs +198 -161
  639. package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -11
  640. package/Runtime/Utils/AnimatorEnumStateMachine.cs +110 -88
  641. package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -11
  642. package/Runtime/Utils/Ascii85.cs +132 -115
  643. package/Runtime/Utils/Ascii85.cs.meta +2 -2
  644. package/Runtime/Utils/Buffers.cs +1151 -550
  645. package/Runtime/Utils/Buffers.cs.meta +11 -11
  646. package/Runtime/Utils/CenterPointOffset.cs +35 -30
  647. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  648. package/Runtime/Utils/ChildSpawner.cs +250 -157
  649. package/Runtime/Utils/ChildSpawner.cs.meta +2 -2
  650. package/Runtime/Utils/CircleLineRenderer.cs +142 -142
  651. package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -11
  652. package/Runtime/Utils/CollisionProxy.cs +48 -48
  653. package/Runtime/Utils/CollisionProxy.cs.meta +2 -2
  654. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  655. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  656. package/Runtime/Utils/DeferredDisposalResult.cs +20 -23
  657. package/Runtime/Utils/DeferredDisposalResult.cs.meta +2 -2
  658. package/Runtime/Utils/LZMA.cs +276 -53
  659. package/Runtime/Utils/LZMA.cs.meta +2 -2
  660. package/Runtime/Utils/MatchColliderToSprite.cs +104 -104
  661. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  662. package/Runtime/Utils/MatchTransform.cs +99 -82
  663. package/Runtime/Utils/MatchTransform.cs.meta +2 -2
  664. package/Runtime/Utils/Oscillator.cs +27 -27
  665. package/Runtime/Utils/Oscillator.cs.meta +11 -11
  666. package/Runtime/Utils/PolygonCollider2DOptimizer.cs +104 -83
  667. package/Runtime/Utils/PolygonCollider2DOptimizer.cs.meta +2 -2
  668. package/Runtime/Utils/RuntimeSingleton.cs +139 -89
  669. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  670. package/Runtime/Utils/ScriptableObjectSingleton.cs +226 -85
  671. package/Runtime/Utils/ScriptableObjectSingleton.cs.meta +2 -2
  672. package/Runtime/Utils/SerializedStringComparer.cs +107 -107
  673. package/Runtime/Utils/SerializedStringComparer.cs.meta +2 -2
  674. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  675. package/Runtime/Utils/SetTextureImportData.cs.meta +11 -11
  676. package/Runtime/Utils/SevenZip/Common/CRC.cs +70 -70
  677. package/Runtime/Utils/SevenZip/Common/CRC.cs.meta +11 -11
  678. package/Runtime/Utils/SevenZip/Common/InBuffer.cs +84 -84
  679. package/Runtime/Utils/SevenZip/Common/InBuffer.cs.meta +11 -11
  680. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs +70 -70
  681. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs.meta +11 -11
  682. package/Runtime/Utils/SevenZip/Common.meta +2 -2
  683. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs +28 -28
  684. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs.meta +11 -11
  685. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs +454 -454
  686. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs.meta +11 -11
  687. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs +179 -179
  688. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs.meta +11 -11
  689. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs +137 -137
  690. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs.meta +11 -11
  691. package/Runtime/Utils/SevenZip/Compress/LZ.meta +8 -8
  692. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs +110 -110
  693. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs.meta +11 -11
  694. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs +525 -527
  695. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs.meta +11 -11
  696. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs +1891 -1904
  697. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs.meta +11 -11
  698. package/Runtime/Utils/SevenZip/Compress/LZMA.meta +8 -8
  699. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs +242 -242
  700. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs.meta +11 -11
  701. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs +146 -149
  702. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs.meta +11 -11
  703. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs +177 -177
  704. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs.meta +11 -11
  705. package/Runtime/Utils/SevenZip/Compress/RangeCoder.meta +8 -8
  706. package/Runtime/Utils/SevenZip/Compress.meta +8 -8
  707. package/Runtime/Utils/SevenZip/ICoder.cs +177 -177
  708. package/Runtime/Utils/SevenZip/ICoder.cs.meta +11 -11
  709. package/Runtime/Utils/SevenZip.meta +2 -2
  710. package/Runtime/Utils/SpriteRendererMetadata.cs +346 -370
  711. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  712. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  713. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  714. package/Runtime/Utils/StartTracker.cs +15 -15
  715. package/Runtime/Utils/StartTracker.cs.meta +2 -2
  716. package/Runtime/Utils/TextureScale.cs +356 -179
  717. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  718. package/Runtime/Utils/TypeNameSorter.cs +17 -17
  719. package/Runtime/Utils/TypeNameSorter.cs.meta +2 -2
  720. package/Runtime/Utils/UnityObjectNameComparer.cs +89 -89
  721. package/Runtime/Utils/UnityObjectNameComparer.cs.meta +2 -2
  722. package/Runtime/Utils.meta +8 -8
  723. package/Runtime/Visuals/AnimatedSpriteLayer.cs +217 -130
  724. package/Runtime/Visuals/AnimatedSpriteLayer.cs.meta +2 -2
  725. package/Runtime/Visuals/UGUI/EnhancedImage.cs +218 -85
  726. package/Runtime/Visuals/UGUI/EnhancedImage.cs.meta +2 -2
  727. package/Runtime/Visuals/UGUI.meta +2 -2
  728. package/Runtime/Visuals/UIToolkit/LayeredImage.cs +781 -484
  729. package/Runtime/Visuals/UIToolkit/LayeredImage.cs.meta +2 -2
  730. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs +945 -322
  731. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs.meta +2 -2
  732. package/Runtime/Visuals/UIToolkit.meta +2 -2
  733. package/Runtime/Visuals.meta +2 -2
  734. package/Runtime/WallstopStudios.UnityHelpers.asmdef +22 -14
  735. package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -7
  736. package/Runtime.meta +8 -8
  737. package/SERIALIZATION.md +648 -0
  738. package/SERIALIZATION.md.meta +7 -0
  739. package/SINGLETONS.md +427 -0
  740. package/SINGLETONS.md.meta +7 -0
  741. package/SPATIAL_TREES_2D_GUIDE.md +261 -0
  742. package/SPATIAL_TREES_2D_GUIDE.md.meta +7 -0
  743. package/SPATIAL_TREES_3D_GUIDE.md +214 -0
  744. package/SPATIAL_TREES_3D_GUIDE.md.meta +7 -0
  745. package/SPATIAL_TREE_2D_PERFORMANCE.md +238 -0
  746. package/SPATIAL_TREE_2D_PERFORMANCE.md.meta +7 -0
  747. package/SPATIAL_TREE_3D_PERFORMANCE.md +240 -0
  748. package/SPATIAL_TREE_3D_PERFORMANCE.md.meta +7 -0
  749. package/SPATIAL_TREE_SEMANTICS.md +106 -0
  750. package/SPATIAL_TREE_SEMANTICS.md.meta +7 -0
  751. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab +77 -0
  752. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab.meta +8 -0
  753. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab +47 -0
  754. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab.meta +8 -0
  755. package/Samples~/DI - VContainer/Prefabs.meta +9 -0
  756. package/Samples~/DI - VContainer/README.md +334 -0
  757. package/Samples~/DI - VContainer/README.md.meta +8 -0
  758. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity +120 -0
  759. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity.meta +8 -0
  760. package/Samples~/DI - VContainer/Scenes.meta +9 -0
  761. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +24 -0
  762. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs.meta +12 -0
  763. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +21 -0
  764. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs.meta +12 -0
  765. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef +37 -0
  766. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef.meta +8 -0
  767. package/Samples~/DI - VContainer/Scripts/Spawner.cs +21 -0
  768. package/Samples~/DI - VContainer/Scripts/Spawner.cs.meta +12 -0
  769. package/Samples~/DI - VContainer/Scripts.meta +9 -0
  770. package/Samples~/DI - VContainer.meta +9 -0
  771. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab +77 -0
  772. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab.meta +8 -0
  773. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab +47 -0
  774. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab.meta +8 -0
  775. package/Samples~/DI - Zenject/Prefabs.meta +9 -0
  776. package/Samples~/DI - Zenject/README.md +389 -0
  777. package/Samples~/DI - Zenject/README.md.meta +7 -0
  778. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity +164 -0
  779. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity.meta +8 -0
  780. package/Samples~/DI - Zenject/Scenes.meta +9 -0
  781. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +19 -0
  782. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs.meta +12 -0
  783. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef +36 -0
  784. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef.meta +8 -0
  785. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs +47 -0
  786. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs.meta +12 -0
  787. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +20 -0
  788. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs.meta +12 -0
  789. package/Samples~/DI - Zenject/Scripts.meta +9 -0
  790. package/Samples~/DI - Zenject.meta +9 -0
  791. package/Samples~/Random - PRNG/README.md +12 -0
  792. package/Samples~/Random - PRNG/README.md.meta +8 -0
  793. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs +28 -0
  794. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs.meta +12 -0
  795. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef +17 -0
  796. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef.meta +8 -0
  797. package/Samples~/Random - PRNG/Scripts.meta +9 -0
  798. package/Samples~/Random - PRNG.meta +9 -0
  799. package/Samples~/Relational Components - Basic/README.md +19 -0
  800. package/Samples~/Relational Components - Basic/README.md.meta +8 -0
  801. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs +37 -0
  802. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs.meta +12 -0
  803. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef +17 -0
  804. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef.meta +8 -0
  805. package/Samples~/Relational Components - Basic/Scripts.meta +9 -0
  806. package/Samples~/Relational Components - Basic.meta +9 -0
  807. package/Samples~/Serialization - JSON/README.md +13 -0
  808. package/Samples~/Serialization - JSON/README.md.meta +8 -0
  809. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs +50 -0
  810. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs.meta +12 -0
  811. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef +17 -0
  812. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef.meta +8 -0
  813. package/Samples~/Serialization - JSON/Scripts.meta +9 -0
  814. package/Samples~/Serialization - JSON.meta +9 -0
  815. package/Samples~/Spatial Structures - 2D and 3D/README.md +13 -0
  816. package/Samples~/Spatial Structures - 2D and 3D/README.md.meta +8 -0
  817. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef +17 -0
  818. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef.meta +8 -0
  819. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs +62 -0
  820. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs.meta +12 -0
  821. package/Samples~/Spatial Structures - 2D and 3D/Scripts.meta +9 -0
  822. package/Samples~/Spatial Structures - 2D and 3D.meta +9 -0
  823. package/Samples~/UGUI - EnhancedImage/README.md +12 -0
  824. package/Samples~/UGUI - EnhancedImage/README.md.meta +8 -0
  825. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs +36 -0
  826. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs.meta +12 -0
  827. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef +17 -0
  828. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef.meta +8 -0
  829. package/Samples~/UGUI - EnhancedImage/Scripts.meta +9 -0
  830. package/Samples~/UGUI - EnhancedImage.meta +9 -0
  831. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +12 -0
  832. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md.meta +8 -0
  833. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs +45 -0
  834. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs.meta +12 -0
  835. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef +19 -0
  836. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef.meta +8 -0
  837. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor.meta +9 -0
  838. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts.meta +9 -0
  839. package/Samples~/UI Toolkit - MultiFile Selector (Editor).meta +9 -0
  840. package/Shaders/Materials/BackgroundMask-Material.mat +59 -59
  841. package/Shaders/Materials/BackgroundMask-Material.mat.meta +8 -8
  842. package/Shaders/Materials.meta +8 -8
  843. package/Shaders/ShaderGraph/BackgroundMask.shadergraph +1653 -1653
  844. package/Shaders/ShaderGraph/BackgroundMask.shadergraph.meta +10 -10
  845. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph +835 -835
  846. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph.meta +10 -10
  847. package/Shaders/ShaderGraph.meta +8 -8
  848. package/Shaders/Support/EnhancedImageSupport.shader +64 -0
  849. package/Shaders/Support/EnhancedImageSupport.shader.meta +9 -0
  850. package/Shaders/Support.meta +8 -0
  851. package/Shaders.meta +8 -8
  852. package/Styles/Elements/Progress/ArcedProgressBar.cs +345 -345
  853. package/Styles/Elements/Progress/ArcedProgressBar.cs.meta +2 -2
  854. package/Styles/Elements/Progress/CircularProgressBar.cs +307 -307
  855. package/Styles/Elements/Progress/CircularProgressBar.cs.meta +2 -2
  856. package/Styles/Elements/Progress/GlitchProgressBar.cs +416 -416
  857. package/Styles/Elements/Progress/GlitchProgressBar.cs.meta +2 -2
  858. package/Styles/Elements/Progress/LiquidProgressBar.cs +632 -632
  859. package/Styles/Elements/Progress/LiquidProgressBar.cs.meta +2 -2
  860. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs +722 -722
  861. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs.meta +2 -2
  862. package/Styles/Elements/Progress/RegularProgressBar.cs +405 -405
  863. package/Styles/Elements/Progress/RegularProgressBar.cs.meta +2 -2
  864. package/Styles/Elements/Progress/WigglyProgressBar.cs +837 -837
  865. package/Styles/Elements/Progress/WigglyProgressBar.cs.meta +2 -2
  866. package/Styles/Elements/Progress.meta +2 -2
  867. package/Styles/Elements.meta +2 -2
  868. package/Styles/USS/ArcedProgressBar.uss +18 -18
  869. package/Styles/USS/ArcedProgressBar.uss.meta +2 -2
  870. package/Styles/USS/CirclularProgressBar.uss +17 -17
  871. package/Styles/USS/CirclularProgressBar.uss.meta +2 -2
  872. package/Styles/USS/RegularProgressBar.uss +32 -32
  873. package/Styles/USS/RegularProgressBar.uss.meta +2 -2
  874. package/Styles/USS/WigglyProgressBar.uss +16 -16
  875. package/Styles/USS/WigglyProgressBar.uss.meta +2 -2
  876. package/Styles/USS.meta +2 -2
  877. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef +14 -17
  878. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef.meta +7 -7
  879. package/Styles.meta +2 -2
  880. package/THIRD_PARTY_NOTICES.md +74 -0
  881. package/THIRD_PARTY_NOTICES.md.meta +7 -0
  882. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +155 -0
  883. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs.meta +11 -0
  884. package/Tests/Editor/Attributes.meta +8 -0
  885. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +118 -0
  886. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs.meta +11 -0
  887. package/Tests/Editor/Core/Attributes.meta +8 -0
  888. package/Tests/Editor/Core.meta +8 -0
  889. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs +194 -0
  890. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs.meta +3 -0
  891. package/Tests/Editor/Extensions.meta +3 -0
  892. package/Tests/Editor/Helper/DummyScriptableObject.cs +6 -0
  893. package/Tests/Editor/Helper/DummyScriptableObject.cs.meta +3 -0
  894. package/Tests/Editor/Helper/HelpersTests.cs +101 -0
  895. package/Tests/Editor/Helper/HelpersTests.cs.meta +3 -0
  896. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs +63 -0
  897. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs.meta +11 -0
  898. package/Tests/Editor/Helper/PromptScope.cs +28 -0
  899. package/Tests/Editor/Helper/PromptScope.cs.meta +11 -0
  900. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs +105 -0
  901. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs.meta +11 -0
  902. package/Tests/Editor/Helper/SpriteHelpersTests.cs +334 -0
  903. package/Tests/Editor/Helper/SpriteHelpersTests.cs.meta +3 -0
  904. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs +183 -0
  905. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs.meta +11 -0
  906. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs +161 -0
  907. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs.meta +11 -0
  908. package/Tests/Editor/Helper.meta +3 -0
  909. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs +40 -0
  910. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs.meta +11 -0
  911. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +77 -0
  912. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs.meta +11 -0
  913. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +36 -0
  914. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef.meta +7 -0
  915. package/Tests/Editor/Integrations/VContainer.meta +8 -0
  916. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +36 -0
  917. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef.meta +7 -0
  918. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs +40 -0
  919. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs.meta +11 -0
  920. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +76 -0
  921. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs.meta +11 -0
  922. package/Tests/Editor/Integrations/Zenject.meta +8 -0
  923. package/Tests/Editor/Integrations.meta +8 -0
  924. package/Tests/Editor/MultiFileSelectorElementTests.cs +265 -0
  925. package/Tests/Editor/MultiFileSelectorElementTests.cs.meta +11 -0
  926. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs +100 -0
  927. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs.meta +11 -0
  928. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +199 -0
  929. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs.meta +11 -0
  930. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +108 -0
  931. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs.meta +11 -0
  932. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +323 -0
  933. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs.meta +11 -0
  934. package/Tests/Editor/Sprites/SpriteCropperTests.cs +162 -0
  935. package/Tests/Editor/Sprites/SpriteCropperTests.cs.meta +11 -0
  936. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs +227 -0
  937. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs.meta +11 -0
  938. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +113 -0
  939. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs.meta +11 -0
  940. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +28 -0
  941. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs.meta +11 -0
  942. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +248 -0
  943. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs.meta +11 -0
  944. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +180 -0
  945. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs.meta +11 -0
  946. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +295 -0
  947. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs.meta +11 -0
  948. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +134 -0
  949. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs.meta +11 -0
  950. package/Tests/Editor/Sprites.meta +8 -0
  951. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs +10 -0
  952. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs.meta +11 -0
  953. package/Tests/Editor/TestComponents.meta +8 -0
  954. package/Tests/Editor/Tools/ImageBlurToolTests.cs +135 -0
  955. package/Tests/Editor/Tools/ImageBlurToolTests.cs.meta +11 -0
  956. package/Tests/Editor/Tools.meta +8 -0
  957. package/Tests/Editor/Utils/CommonTestBase.cs +208 -0
  958. package/Tests/Editor/Utils/CommonTestBase.cs.meta +11 -0
  959. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs +306 -0
  960. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs.meta +9 -0
  961. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +183 -0
  962. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs.meta +11 -0
  963. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs +466 -0
  964. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs.meta +11 -0
  965. package/Tests/Editor/Utils.meta +3 -0
  966. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +19 -0
  967. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
  968. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +781 -0
  969. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs.meta +11 -0
  970. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs +96 -0
  971. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs.meta +11 -0
  972. package/Tests/Editor/Windows/PrefabCheckerTests.cs +81 -0
  973. package/Tests/Editor/Windows/PrefabCheckerTests.cs.meta +11 -0
  974. package/Tests/Editor/Windows.meta +8 -0
  975. package/Tests/Editor.meta +8 -0
  976. package/Tests/Runtime/AssemblyInfo.cs +4 -0
  977. package/Tests/Runtime/AssemblyInfo.cs.meta +3 -0
  978. package/Tests/Runtime/Attributes/ChildComponentTests.cs +766 -81
  979. package/Tests/Runtime/Attributes/ChildComponentTests.cs.meta +2 -2
  980. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  981. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs.meta +2 -2
  982. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  983. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs.meta +2 -2
  984. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs +34 -34
  985. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs.meta +2 -2
  986. package/Tests/Runtime/Attributes/Components/RelationalComponentsTesterSimple.cs +37 -0
  987. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentsTesterSimple.cs.meta +2 -2
  988. package/Tests/Runtime/Attributes/Components.meta +2 -2
  989. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs +75 -0
  990. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs.meta +11 -0
  991. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs +26 -0
  992. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs.meta +3 -0
  993. package/Tests/Runtime/Attributes/ParentComponentTests.cs +565 -68
  994. package/Tests/Runtime/Attributes/ParentComponentTests.cs.meta +2 -2
  995. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs +614 -0
  996. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs.meta +11 -0
  997. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs +478 -0
  998. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs.meta +11 -0
  999. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs +56 -0
  1000. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs.meta +11 -0
  1001. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs +226 -0
  1002. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs.meta +11 -0
  1003. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +109 -0
  1004. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs.meta +11 -0
  1005. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs +234 -0
  1006. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs.meta +11 -0
  1007. package/Tests/Runtime/Attributes/SiblingComponentTests.cs +721 -0
  1008. package/Tests/Runtime/Attributes/SiblingComponentTests.cs.meta +11 -0
  1009. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs +96 -0
  1010. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs.meta +11 -0
  1011. package/Tests/Runtime/Attributes.meta +2 -2
  1012. package/Tests/Runtime/Core/Random/RandomComparerTests.cs +166 -0
  1013. package/Tests/Runtime/Core/Random/RandomComparerTests.cs.meta +11 -0
  1014. package/Tests/Runtime/Core/Random.meta +8 -0
  1015. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs +56 -56
  1016. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs.meta +2 -2
  1017. package/Tests/Runtime/Core/Threading.meta +2 -2
  1018. package/Tests/Runtime/Core.meta +2 -2
  1019. package/Tests/Runtime/DataStructures/BalancedKDTree2DTests.cs +562 -0
  1020. package/Tests/Runtime/DataStructures/{BalancedKDTreeTests.cs.meta → BalancedKDTree2DTests.cs.meta} +11 -11
  1021. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs +10 -0
  1022. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs.meta +11 -0
  1023. package/Tests/Runtime/DataStructures/BitSetTests.cs +1400 -0
  1024. package/Tests/Runtime/DataStructures/BitSetTests.cs.meta +3 -0
  1025. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs +1215 -0
  1026. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs.meta +11 -0
  1027. package/Tests/Runtime/DataStructures/CircleTests.cs +965 -0
  1028. package/Tests/Runtime/DataStructures/CircleTests.cs.meta +11 -0
  1029. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +2083 -324
  1030. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs.meta +2 -2
  1031. package/Tests/Runtime/DataStructures/DequeTests.cs +790 -0
  1032. package/Tests/Runtime/DataStructures/DequeTests.cs.meta +3 -0
  1033. package/Tests/Runtime/DataStructures/DisjointSetTests.cs +1114 -0
  1034. package/Tests/Runtime/DataStructures/DisjointSetTests.cs.meta +3 -0
  1035. package/Tests/Runtime/DataStructures/FastOneOfTests.cs +966 -0
  1036. package/Tests/Runtime/DataStructures/FastOneOfTests.cs.meta +11 -0
  1037. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs +286 -0
  1038. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs.meta +11 -0
  1039. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs +414 -0
  1040. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs.meta +11 -0
  1041. package/Tests/Runtime/DataStructures/HeapTests.cs +1953 -0
  1042. package/Tests/Runtime/DataStructures/HeapTests.cs.meta +11 -0
  1043. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs +833 -0
  1044. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs.meta +3 -0
  1045. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs +297 -0
  1046. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs.meta +11 -0
  1047. package/Tests/Runtime/DataStructures/OctTree3DTests.cs +351 -0
  1048. package/Tests/Runtime/DataStructures/OctTree3DTests.cs.meta +11 -0
  1049. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs +71 -0
  1050. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs.meta +3 -0
  1051. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs +475 -0
  1052. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs.meta +11 -0
  1053. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs +660 -0
  1054. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs.meta +11 -0
  1055. package/Tests/Runtime/DataStructures/RTree2DTests.cs +823 -0
  1056. package/Tests/Runtime/DataStructures/RTree2DTests.cs.meta +3 -0
  1057. package/Tests/Runtime/DataStructures/RTree3DTests.cs +270 -0
  1058. package/Tests/Runtime/DataStructures/RTree3DTests.cs.meta +11 -0
  1059. package/Tests/Runtime/DataStructures/SparseSetTests.cs +1146 -0
  1060. package/Tests/Runtime/DataStructures/SparseSetTests.cs.meta +3 -0
  1061. package/Tests/Runtime/DataStructures/SpatialHashTests.cs +992 -0
  1062. package/Tests/Runtime/DataStructures/SpatialHashTests.cs.meta +11 -0
  1063. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs +351 -0
  1064. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs.meta +11 -0
  1065. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs +127 -0
  1066. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs.meta +11 -0
  1067. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs +218 -0
  1068. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs.meta +11 -0
  1069. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs +396 -0
  1070. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs.meta +11 -0
  1071. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +281 -0
  1072. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs.meta +11 -0
  1073. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs +127 -0
  1074. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs.meta +11 -0
  1075. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs +170 -0
  1076. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs.meta +11 -0
  1077. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs +474 -0
  1078. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs.meta +11 -0
  1079. package/Tests/Runtime/DataStructures/SphereTests.cs +806 -0
  1080. package/Tests/Runtime/DataStructures/SphereTests.cs.meta +3 -0
  1081. package/Tests/Runtime/DataStructures/StringWrapperTests.cs +333 -0
  1082. package/Tests/Runtime/DataStructures/StringWrapperTests.cs.meta +11 -0
  1083. package/Tests/Runtime/DataStructures/TimedCacheTests.cs +669 -0
  1084. package/Tests/Runtime/DataStructures/TimedCacheTests.cs.meta +11 -0
  1085. package/Tests/Runtime/DataStructures/TrieTests.cs +3385 -0
  1086. package/Tests/Runtime/DataStructures/TrieTests.cs.meta +11 -0
  1087. package/Tests/Runtime/DataStructures/UnbalancedKDTree2DTests.cs +565 -0
  1088. package/Tests/Runtime/DataStructures/{UnbalancedKDTreeTests.cs.meta → UnbalancedKDTree2DTests.cs.meta} +11 -11
  1089. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs +10 -0
  1090. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs.meta +11 -0
  1091. package/Tests/Runtime/DataStructures.meta +8 -8
  1092. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs +28 -0
  1093. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs.meta +11 -0
  1094. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +667 -0
  1095. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs.meta +11 -0
  1096. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs +230 -0
  1097. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs.meta +11 -0
  1098. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs +55 -0
  1099. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs.meta +11 -0
  1100. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +724 -438
  1101. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  1102. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs +403 -0
  1103. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs.meta +11 -0
  1104. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs +69 -0
  1105. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs.meta +11 -0
  1106. package/Tests/Runtime/Extensions/EnumExtensionTests.cs +809 -153
  1107. package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
  1108. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs +191 -0
  1109. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs.meta +11 -0
  1110. package/Tests/Runtime/Extensions/IListExtensionTests.cs +955 -169
  1111. package/Tests/Runtime/Extensions/IListExtensionTests.cs.meta +2 -2
  1112. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs +266 -58
  1113. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs.meta +2 -2
  1114. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs +721 -718
  1115. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs.meta +2 -2
  1116. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs +565 -0
  1117. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs.meta +3 -0
  1118. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs +100 -0
  1119. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs.meta +11 -0
  1120. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +719 -27
  1121. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  1122. package/Tests/Runtime/Extensions/StringExtensionTests.cs +2592 -31
  1123. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  1124. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs +166 -0
  1125. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs.meta +11 -0
  1126. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs +1446 -0
  1127. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs.meta +11 -0
  1128. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs +1779 -0
  1129. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs.meta +11 -0
  1130. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs +292 -0
  1131. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs.meta +11 -0
  1132. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs +260 -0
  1133. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs.meta +11 -0
  1134. package/Tests/Runtime/Extensions.meta +2 -2
  1135. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  1136. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  1137. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs +38 -0
  1138. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs.meta +11 -0
  1139. package/Tests/Runtime/Helper/DirectoryHelperTests.cs +347 -0
  1140. package/Tests/Runtime/Helper/DirectoryHelperTests.cs.meta +11 -0
  1141. package/Tests/Runtime/Helper/EnumerablesTests.cs +45 -0
  1142. package/Tests/Runtime/Helper/EnumerablesTests.cs.meta +11 -0
  1143. package/Tests/Runtime/Helper/FileHelperTests.cs +481 -0
  1144. package/Tests/Runtime/Helper/FileHelperTests.cs.meta +11 -0
  1145. package/Tests/Runtime/Helper/FormattingHelpersTests.cs +353 -0
  1146. package/Tests/Runtime/Helper/FormattingHelpersTests.cs.meta +11 -0
  1147. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs +27 -0
  1148. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs.meta +11 -0
  1149. package/Tests/Runtime/Helper/GeometryTests.cs +517 -0
  1150. package/Tests/Runtime/Helper/GeometryTests.cs.meta +3 -0
  1151. package/Tests/Runtime/Helper/HelpersTests.cs +749 -0
  1152. package/Tests/Runtime/Helper/HelpersTests.cs.meta +11 -0
  1153. package/Tests/Runtime/Helper/IterationHelpersTests.cs +173 -0
  1154. package/Tests/Runtime/Helper/IterationHelpersTests.cs.meta +11 -0
  1155. package/Tests/Runtime/Helper/LineHelperTests.cs +662 -0
  1156. package/Tests/Runtime/Helper/LineHelperTests.cs.meta +11 -0
  1157. package/Tests/Runtime/Helper/ObjectHelperTests.cs +444 -432
  1158. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  1159. package/Tests/Runtime/Helper/ObjectsTests.cs +363 -0
  1160. package/Tests/Runtime/Helper/ObjectsTests.cs.meta +3 -0
  1161. package/Tests/Runtime/Helper/PathHelperTests.cs +183 -0
  1162. package/Tests/Runtime/Helper/PathHelperTests.cs.meta +11 -0
  1163. package/Tests/Runtime/Helper/ReflectionHelperTests.cs +2199 -1493
  1164. package/Tests/Runtime/Helper/ReflectionHelperTests.cs.meta +2 -2
  1165. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs +192 -0
  1166. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs.meta +11 -0
  1167. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs +58 -0
  1168. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs.meta +11 -0
  1169. package/Tests/Runtime/Helper/SceneHelperTests.cs +77 -94
  1170. package/Tests/Runtime/Helper/SceneHelperTests.cs.meta +2 -2
  1171. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs +45 -0
  1172. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs.meta +11 -0
  1173. package/Tests/Runtime/Helper/WallMathTests.cs +1884 -233
  1174. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  1175. package/Tests/Runtime/Helper.meta +2 -2
  1176. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +560 -0
  1177. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs.meta +11 -0
  1178. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef +38 -0
  1179. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef.meta +7 -0
  1180. package/Tests/Runtime/Integrations/VContainer.meta +8 -0
  1181. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +591 -0
  1182. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs.meta +11 -0
  1183. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef +38 -0
  1184. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef.meta +7 -0
  1185. package/Tests/Runtime/Integrations/Zenject.meta +8 -0
  1186. package/Tests/Runtime/Integrations.meta +8 -0
  1187. package/Tests/Runtime/Math/Line2DTests.cs +594 -0
  1188. package/Tests/Runtime/Math/Line2DTests.cs.meta +11 -0
  1189. package/Tests/Runtime/Math/Line3DTests.cs +655 -0
  1190. package/Tests/Runtime/Math/Line3DTests.cs.meta +11 -0
  1191. package/Tests/Runtime/Math/LineTests.cs +480 -0
  1192. package/Tests/Runtime/Math/LineTests.cs.meta +11 -0
  1193. package/Tests/Runtime/Math/ParabolaTests.cs +477 -0
  1194. package/Tests/Runtime/Math/ParabolaTests.cs.meta +11 -0
  1195. package/Tests/Runtime/Math/PointPolygonCheckTests.cs +939 -0
  1196. package/Tests/Runtime/Math/PointPolygonCheckTests.cs.meta +11 -0
  1197. package/Tests/Runtime/Math/RangeTests.cs +197 -0
  1198. package/Tests/Runtime/Math/RangeTests.cs.meta +11 -0
  1199. package/Tests/Runtime/Math.meta +8 -0
  1200. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs +81 -0
  1201. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs.meta +11 -0
  1202. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs +421 -0
  1203. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs.meta +3 -0
  1204. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs +76 -76
  1205. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs.meta +2 -2
  1206. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs +161 -0
  1207. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs.meta +11 -0
  1208. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs +207 -0
  1209. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs.meta +3 -0
  1210. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +195 -181
  1211. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  1212. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +60 -61
  1213. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  1214. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +692 -0
  1215. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs.meta +11 -0
  1216. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +650 -0
  1217. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs.meta +11 -0
  1218. package/Tests/Runtime/Performance.meta +8 -8
  1219. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  1220. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  1221. package/Tests/Runtime/Random/IllusionFlowTests.cs +12 -12
  1222. package/Tests/Runtime/Random/IllusionFlowTests.cs.meta +2 -2
  1223. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
  1224. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs.meta +2 -2
  1225. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  1226. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  1227. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs +494 -0
  1228. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs.meta +3 -0
  1229. package/Tests/Runtime/Random/RandomStateSerializationTests.cs +304 -0
  1230. package/Tests/Runtime/Random/RandomStateSerializationTests.cs.meta +4 -0
  1231. package/Tests/Runtime/Random/RandomTestBase.cs +836 -787
  1232. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  1233. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  1234. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  1235. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  1236. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  1237. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  1238. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  1239. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  1240. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  1241. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  1242. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  1243. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  1244. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  1245. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  1246. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  1247. package/Tests/Runtime/Random/XoroShiroRandomTests.cs +9 -9
  1248. package/Tests/Runtime/Random/XoroShiroRandomTests.cs.meta +2 -2
  1249. package/Tests/Runtime/Random.meta +8 -8
  1250. package/Tests/Runtime/RuntimeTestTimeouts.cs +3 -0
  1251. package/Tests/Runtime/RuntimeTestTimeouts.cs.meta +11 -0
  1252. package/Tests/Runtime/Scenes/Test1.unity +723 -723
  1253. package/Tests/Runtime/Scenes/Test1.unity.meta +7 -7
  1254. package/Tests/Runtime/Scenes/Test2.unity +723 -723
  1255. package/Tests/Runtime/Scenes/Test2.unity.meta +7 -7
  1256. package/Tests/Runtime/Scenes.meta +2 -2
  1257. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs +67 -0
  1258. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs.meta +11 -0
  1259. package/Tests/Runtime/Serialization/BitSetJsonTests.cs +50 -0
  1260. package/Tests/Runtime/Serialization/BitSetJsonTests.cs.meta +11 -0
  1261. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs +67 -0
  1262. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs.meta +11 -0
  1263. package/Tests/Runtime/Serialization/DequeJsonTests.cs +70 -0
  1264. package/Tests/Runtime/Serialization/DequeJsonTests.cs.meta +11 -0
  1265. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs +25 -0
  1266. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs.meta +11 -0
  1267. package/Tests/Runtime/Serialization/JsonConverterTests.cs +1157 -0
  1268. package/Tests/Runtime/Serialization/JsonConverterTests.cs.meta +11 -0
  1269. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +239 -0
  1270. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs.meta +11 -0
  1271. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs +458 -0
  1272. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs.meta +3 -0
  1273. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +156 -156
  1274. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  1275. package/Tests/Runtime/Serialization/MathJsonTests.cs +79 -0
  1276. package/Tests/Runtime/Serialization/MathJsonTests.cs.meta +11 -0
  1277. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs +76 -0
  1278. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs.meta +11 -0
  1279. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs +80 -0
  1280. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs.meta +11 -0
  1281. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +257 -0
  1282. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs.meta +11 -0
  1283. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs +471 -0
  1284. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs.meta +3 -0
  1285. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs +169 -0
  1286. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs.meta +11 -0
  1287. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs +62 -0
  1288. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs.meta +11 -0
  1289. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +895 -0
  1290. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs.meta +3 -0
  1291. package/Tests/Runtime/Serialization/TypeConverterTests.cs +34 -0
  1292. package/Tests/Runtime/Serialization/TypeConverterTests.cs.meta +11 -0
  1293. package/Tests/Runtime/Serialization.meta +2 -2
  1294. package/Tests/Runtime/Tags/AttributeComponentTests.cs +174 -0
  1295. package/Tests/Runtime/Tags/AttributeComponentTests.cs.meta +3 -0
  1296. package/Tests/Runtime/Tags/AttributeDataTests.cs +312 -0
  1297. package/Tests/Runtime/Tags/AttributeDataTests.cs.meta +11 -0
  1298. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs +405 -0
  1299. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs.meta +3 -0
  1300. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs +147 -0
  1301. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs.meta +11 -0
  1302. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs +60 -0
  1303. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs.meta +3 -0
  1304. package/Tests/Runtime/Tags/EffectHandleTests.cs +61 -0
  1305. package/Tests/Runtime/Tags/EffectHandleTests.cs.meta +3 -0
  1306. package/Tests/Runtime/Tags/EffectHandlerTests.cs +270 -0
  1307. package/Tests/Runtime/Tags/EffectHandlerTests.cs.meta +3 -0
  1308. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs +39 -0
  1309. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs.meta +3 -0
  1310. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs +49 -0
  1311. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs.meta +3 -0
  1312. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs +28 -0
  1313. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs.meta +3 -0
  1314. package/Tests/Runtime/Tags/Helpers.meta +3 -0
  1315. package/Tests/Runtime/Tags/TagHandlerTests.cs +108 -0
  1316. package/Tests/Runtime/Tags/TagHandlerTests.cs.meta +3 -0
  1317. package/Tests/Runtime/Tags.meta +8 -0
  1318. package/Tests/Runtime/TestUtils/CommonTestBase.cs +213 -0
  1319. package/Tests/Runtime/TestUtils/CommonTestBase.cs.meta +11 -0
  1320. package/Tests/Runtime/TestUtils/GCAssert.cs +55 -0
  1321. package/Tests/Runtime/TestUtils/GCAssert.cs.meta +11 -0
  1322. package/Tests/Runtime/TestUtils/SpatialAssert.cs +33 -0
  1323. package/Tests/Runtime/TestUtils/SpatialAssert.cs.meta +11 -0
  1324. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs +195 -0
  1325. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs.meta +11 -0
  1326. package/Tests/Runtime/TestUtils.meta +8 -0
  1327. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs +144 -0
  1328. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs.meta +11 -0
  1329. package/Tests/Runtime/Utils/Ascii85Tests.cs +56 -0
  1330. package/Tests/Runtime/Utils/Ascii85Tests.cs.meta +11 -0
  1331. package/Tests/Runtime/Utils/BuffersTests.cs +1148 -741
  1332. package/Tests/Runtime/Utils/BuffersTests.cs.meta +2 -2
  1333. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs +31 -0
  1334. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs.meta +11 -0
  1335. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs +67 -0
  1336. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs.meta +11 -0
  1337. package/Tests/Runtime/Utils/ChildSpawnerTests.cs +490 -0
  1338. package/Tests/Runtime/Utils/ChildSpawnerTests.cs.meta +11 -0
  1339. package/Tests/Runtime/Utils/CircleLineRendererTests.cs +80 -0
  1340. package/Tests/Runtime/Utils/CircleLineRendererTests.cs.meta +11 -0
  1341. package/Tests/Runtime/Utils/CollisionProxyTests.cs +442 -0
  1342. package/Tests/Runtime/Utils/CollisionProxyTests.cs.meta +11 -0
  1343. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +353 -0
  1344. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs.meta +11 -0
  1345. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs +44 -0
  1346. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs.meta +11 -0
  1347. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +249 -0
  1348. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs.meta +11 -0
  1349. package/Tests/Runtime/Utils/LZMATests.cs +31 -0
  1350. package/Tests/Runtime/Utils/LZMATests.cs.meta +11 -0
  1351. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs +86 -0
  1352. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs.meta +11 -0
  1353. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +503 -0
  1354. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs.meta +11 -0
  1355. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs +34 -0
  1356. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs.meta +11 -0
  1357. package/Tests/Runtime/Utils/MatchTransformTests.cs +495 -0
  1358. package/Tests/Runtime/Utils/MatchTransformTests.cs.meta +11 -0
  1359. package/Tests/Runtime/Utils/OscillatorTests.cs +540 -0
  1360. package/Tests/Runtime/Utils/OscillatorTests.cs.meta +11 -0
  1361. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs +52 -0
  1362. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs.meta +11 -0
  1363. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs +766 -0
  1364. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs.meta +11 -0
  1365. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs +47 -0
  1366. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs.meta +11 -0
  1367. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs +361 -0
  1368. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs.meta +11 -0
  1369. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +383 -398
  1370. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  1371. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs +134 -0
  1372. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs.meta +11 -0
  1373. package/Tests/Runtime/Utils/StartTrackerTests.cs +24 -0
  1374. package/Tests/Runtime/Utils/StartTrackerTests.cs.meta +11 -0
  1375. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs +114 -0
  1376. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs.meta +11 -0
  1377. package/Tests/Runtime/Utils/TextureScaleTests.cs +298 -0
  1378. package/Tests/Runtime/Utils/TextureScaleTests.cs.meta +3 -0
  1379. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs +36 -0
  1380. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs.meta +11 -0
  1381. package/Tests/Runtime/Utils/TypeNameSorterTests.cs +34 -0
  1382. package/Tests/Runtime/Utils/TypeNameSorterTests.cs.meta +11 -0
  1383. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs +63 -0
  1384. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs.meta +11 -0
  1385. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs +59 -0
  1386. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs.meta +11 -0
  1387. package/Tests/Runtime/Utils.meta +2 -2
  1388. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs +266 -0
  1389. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs.meta +11 -0
  1390. package/Tests/Runtime/Visuals/EnhancedImageTests.cs +184 -0
  1391. package/Tests/Runtime/Visuals/EnhancedImageTests.cs.meta +11 -0
  1392. package/Tests/Runtime/Visuals/LayeredImageTests.cs +422 -0
  1393. package/Tests/Runtime/Visuals/LayeredImageTests.cs.meta +11 -0
  1394. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +132 -0
  1395. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs.meta +11 -0
  1396. package/Tests/Runtime/Visuals.meta +3 -0
  1397. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +24 -23
  1398. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  1399. package/Tests/Runtime.meta +8 -8
  1400. package/Tests.meta +8 -8
  1401. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset +63 -63
  1402. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset.meta +8 -8
  1403. package/URP/VolumeProfiles.meta +8 -8
  1404. package/URP.meta +8 -8
  1405. package/node_modules.meta +8 -0
  1406. package/package.json +95 -38
  1407. package/package.json.meta +7 -7
  1408. package/scripts/check-eol.ps1 +52 -0
  1409. package/scripts/check-eol.ps1.meta +7 -0
  1410. package/scripts/clean-nul.ps1 +29 -0
  1411. package/scripts/clean-nul.ps1.meta +7 -0
  1412. package/scripts/lint-doc-links.ps1 +80 -0
  1413. package/scripts/lint-doc-links.ps1.meta +7 -0
  1414. package/scripts/normalize-eol.ps1 +71 -0
  1415. package/scripts/normalize-eol.ps1.meta +7 -0
  1416. package/scripts.meta +8 -0
  1417. package/Editor/Sprites/ProjectAnimationSettings.cs +0 -50
  1418. package/Editor/Sprites/ProjectAnimationSettings.cs.meta +0 -3
  1419. package/Editor/Sprites/TextureSettingsApplier.cs +0 -178
  1420. package/Editor/Sprites/TextureSettingsApplier.cs.meta +0 -3
  1421. package/Runtime/Core/Attributes/ParentComponent.cs +0 -189
  1422. package/Runtime/Core/DataStructure/KDTree.cs +0 -434
  1423. package/Runtime/Core/DataStructure/QuadTree.cs +0 -431
  1424. package/Runtime/Core/DataStructure/RTree.cs +0 -356
  1425. package/Runtime/Core/Extension/HashSetExtensions.cs +0 -12
  1426. package/Runtime/Core/Extension/HashSetExtensions.cs.meta +0 -11
  1427. package/Runtime/Core/Math/Line.cs +0 -55
  1428. package/Runtime/Core/Math/Line.cs.meta +0 -11
  1429. package/Runtime/Core/Math/XXHash.cs +0 -310
  1430. package/Runtime/Core/Math/XXHash.cs.meta +0 -11
  1431. package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +0 -40
  1432. package/Tests/Runtime/Components.meta +0 -3
  1433. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +0 -14
  1434. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +0 -14
  1435. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +0 -11
  1436. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +0 -130
  1437. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +0 -11
  1438. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +0 -14
  1439. package/Tests/Runtime/Helper/FormattingHelperTests.cs +0 -129
  1440. package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +0 -3
  1441. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +0 -14
  1442. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +0 -11
  1443. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +0 -14
  1444. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +0 -11
  1445. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +0 -158
  1446. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +0 -11
  1447. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +0 -14
  1448. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +0 -11
  1449. package/Third Party Notices.md +0 -1
@@ -0,0 +1,1779 @@
1
+ namespace WallstopStudios.UnityHelpers.Tests.Extensions
2
+ {
3
+ using NUnit.Framework;
4
+ using UnityEngine;
5
+ using WallstopStudios.UnityHelpers.Core.DataStructure.Adapters;
6
+ using WallstopStudios.UnityHelpers.Core.Extension;
7
+
8
+ public sealed class UnityExtensionsMathTests
9
+ {
10
+ [Test]
11
+ public void FastContains2DBoundsIntPointInsideReturnsTrue()
12
+ {
13
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
14
+ FastVector3Int point = new(5, 5, 0);
15
+ Assert.IsTrue(bounds.FastContains2D(point));
16
+ }
17
+
18
+ [Test]
19
+ public void FastContains2DBoundsIntPointAtMinReturnsTrue()
20
+ {
21
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
22
+ FastVector3Int point = new(0, 0, 0);
23
+ Assert.IsTrue(bounds.FastContains2D(point));
24
+ }
25
+
26
+ [Test]
27
+ public void FastContains2DBoundsIntPointAtMaxReturnsFalse()
28
+ {
29
+ // xMax and yMax are exclusive in FastContains2D
30
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
31
+ FastVector3Int point = new(10, 10, 0);
32
+ Assert.IsFalse(bounds.FastContains2D(point));
33
+ }
34
+
35
+ [Test]
36
+ public void FastContains2DBoundsIntPointOnMaxXEdgeReturnsFalse()
37
+ {
38
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
39
+ FastVector3Int point = new(10, 5, 0);
40
+ Assert.IsFalse(bounds.FastContains2D(point));
41
+ }
42
+
43
+ [Test]
44
+ public void FastContains2DBoundsIntPointOnMaxYEdgeReturnsFalse()
45
+ {
46
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
47
+ FastVector3Int point = new(5, 10, 0);
48
+ Assert.IsFalse(bounds.FastContains2D(point));
49
+ }
50
+
51
+ [Test]
52
+ public void FastContains2DBoundsIntPointJustInsideMaxBoundaryReturnsTrue()
53
+ {
54
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
55
+ FastVector3Int point = new(9, 9, 0);
56
+ Assert.IsTrue(bounds.FastContains2D(point));
57
+ }
58
+
59
+ [Test]
60
+ public void FastContains2DBoundsIntPointOutsideNegativeReturnsFalse()
61
+ {
62
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
63
+ FastVector3Int point = new(-1, -1, 0);
64
+ Assert.IsFalse(bounds.FastContains2D(point));
65
+ }
66
+
67
+ [Test]
68
+ public void FastContains2DBoundsIntPointOutsidePositiveReturnsFalse()
69
+ {
70
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
71
+ FastVector3Int point = new(11, 11, 0);
72
+ Assert.IsFalse(bounds.FastContains2D(point));
73
+ }
74
+
75
+ [Test]
76
+ public void FastContains2DBoundsIntNegativeBoundsPointInsideReturnsTrue()
77
+ {
78
+ BoundsInt bounds = new(-10, -10, 0, 10, 10, 10);
79
+ FastVector3Int point = new(-5, -5, 0);
80
+ Assert.IsTrue(bounds.FastContains2D(point));
81
+ }
82
+
83
+ [Test]
84
+ public void FastContains2DBoundsIntSinglePointBoundsPointAtMinReturnsTrue()
85
+ {
86
+ BoundsInt bounds = new(5, 5, 0, 1, 1, 1);
87
+ FastVector3Int point = new(5, 5, 0);
88
+ Assert.IsTrue(bounds.FastContains2D(point));
89
+ }
90
+
91
+ [Test]
92
+ public void FastContains2DBoundsIntZeroSizeBoundsReturnsFalse()
93
+ {
94
+ BoundsInt bounds = new(5, 5, 0, 0, 0, 0);
95
+ FastVector3Int point = new(5, 5, 0);
96
+ Assert.IsFalse(bounds.FastContains2D(point));
97
+ }
98
+
99
+ [Test]
100
+ public void FastContains2DBoundsIntIgnoresZCoordinate()
101
+ {
102
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
103
+ FastVector3Int point = new(5, 5, 100);
104
+ Assert.IsTrue(bounds.FastContains2D(point));
105
+ }
106
+
107
+ [Test]
108
+ public void FastContains2DBoundsPointInsideReturnsTrue()
109
+ {
110
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
111
+ Vector2 point = new(5f, 5f);
112
+ Assert.IsTrue(bounds.FastContains2D(point));
113
+ }
114
+
115
+ [Test]
116
+ public void FastContains2DBoundsPointAtMinReturnsTrue()
117
+ {
118
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
119
+ Vector2 point = new(0f, 0f);
120
+ Assert.IsTrue(bounds.FastContains2D(point));
121
+ }
122
+
123
+ [Test]
124
+ public void FastContains2DBoundsPointAtMaxReturnsFalse()
125
+ {
126
+ // max is inclusive in FastContains2D
127
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
128
+ Vector2 point = new(10f, 10f);
129
+ Assert.IsTrue(bounds.FastContains2D(point));
130
+ }
131
+
132
+ [Test]
133
+ public void FastContains2DBoundsPointJustBelowMinReturnsFalse()
134
+ {
135
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
136
+ Vector2 point = new(-0.01f, 5f);
137
+ Assert.IsFalse(bounds.FastContains2D(point));
138
+ }
139
+
140
+ [Test]
141
+ public void FastContains2DBoundsPointJustBelowMaxReturnsTrue()
142
+ {
143
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
144
+ Vector2 point = new(9.99f, 9.99f);
145
+ Assert.IsTrue(bounds.FastContains2D(point));
146
+ }
147
+
148
+ [Test]
149
+ public void FastContains2DBoundsPointOutsideXReturnsFalse()
150
+ {
151
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
152
+ Vector2 point = new(10.1f, 5f);
153
+ Assert.IsFalse(bounds.FastContains2D(point));
154
+ }
155
+
156
+ [Test]
157
+ public void FastContains2DBoundsPointOutsideYReturnsFalse()
158
+ {
159
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
160
+ Vector2 point = new(5f, 10.1f);
161
+ Assert.IsFalse(bounds.FastContains2D(point));
162
+ }
163
+
164
+ [Test]
165
+ public void FastContains2DBoundsNegativeBoundsPointInsideReturnsTrue()
166
+ {
167
+ Bounds bounds = new(new Vector3(-5f, -5f, 0f), new Vector3(10f, 10f, 10f));
168
+ Vector2 point = new(-5f, -5f);
169
+ Assert.IsTrue(bounds.FastContains2D(point));
170
+ }
171
+
172
+ [Test]
173
+ public void FastContains2DBoundsVerySmallBoundsPointInsideReturnsTrue()
174
+ {
175
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
176
+ Vector2 point = new(0f, 0f);
177
+ Assert.IsTrue(bounds.FastContains2D(point));
178
+ }
179
+
180
+ [Test]
181
+ public void FastContains2DBoundsVeryLargeBoundsPointInsideReturnsTrue()
182
+ {
183
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10000f, 10000f, 10000f));
184
+ Vector2 point = new(4999f, 4999f);
185
+ Assert.IsTrue(bounds.FastContains2D(point));
186
+ }
187
+
188
+ [Test]
189
+ public void FastIntersects2DBoundsIntOverlappingBoundsReturnsTrue()
190
+ {
191
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 10);
192
+ BoundsInt bounds2 = new(5, 5, 0, 10, 10, 10);
193
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
194
+ }
195
+
196
+ [Test]
197
+ public void FastIntersects2DBoundsIntTouchingEdgesReturnsTrue()
198
+ {
199
+ // Bounds touching at edge should intersect (xMax >= xMin)
200
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 10);
201
+ BoundsInt bounds2 = new(10, 0, 0, 10, 10, 10);
202
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
203
+ }
204
+
205
+ [Test]
206
+ public void FastIntersects2DBoundsIntSeparatedBoundsReturnsFalse()
207
+ {
208
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 10);
209
+ BoundsInt bounds2 = new(11, 11, 0, 10, 10, 10);
210
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
211
+ }
212
+
213
+ [Test]
214
+ public void FastIntersects2DBoundsIntOneInsideOtherReturnsTrue()
215
+ {
216
+ BoundsInt bounds1 = new(0, 0, 0, 100, 100, 100);
217
+ BoundsInt bounds2 = new(25, 25, 0, 50, 50, 50);
218
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
219
+ }
220
+
221
+ [Test]
222
+ public void FastIntersects2DBoundsIntIdenticalBoundsReturnsTrue()
223
+ {
224
+ BoundsInt bounds = new(5, 5, 0, 10, 10, 10);
225
+ Assert.IsTrue(bounds.FastIntersects2D(bounds));
226
+ }
227
+
228
+ [Test]
229
+ public void FastIntersects2DBoundsIntNegativeCoordinatesOverlappingReturnsTrue()
230
+ {
231
+ BoundsInt bounds1 = new(-10, -10, 0, 10, 10, 10);
232
+ BoundsInt bounds2 = new(-5, -5, 0, 10, 10, 10);
233
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
234
+ }
235
+
236
+ [Test]
237
+ public void FastIntersects2DBoundsIntSeparatedOnXAxisReturnsFalse()
238
+ {
239
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 10);
240
+ BoundsInt bounds2 = new(11, 5, 0, 10, 10, 10);
241
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
242
+ }
243
+
244
+ [Test]
245
+ public void FastIntersects2DBoundsIntSeparatedOnYAxisReturnsFalse()
246
+ {
247
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 10);
248
+ BoundsInt bounds2 = new(5, 11, 0, 10, 10, 10);
249
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
250
+ }
251
+
252
+ [Test]
253
+ public void FastIntersects2DBoundsIntZeroSizeBoundsReturnsFalse()
254
+ {
255
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 10);
256
+ BoundsInt bounds2 = new(5, 5, 0, 0, 0, 0);
257
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
258
+ }
259
+
260
+ [Test]
261
+ public void FastIntersects2DBoundsIntIgnoresZCoordinate()
262
+ {
263
+ BoundsInt bounds1 = new(0, 0, 0, 10, 10, 1);
264
+ BoundsInt bounds2 = new(5, 5, 100, 10, 10, 1);
265
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
266
+ }
267
+
268
+ [Test]
269
+ public void FastIntersects2DBoundsOverlappingBoundsReturnsTrue()
270
+ {
271
+ Bounds bounds1 = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
272
+ Bounds bounds2 = new(new Vector3(8f, 8f, 0f), new Vector3(10f, 10f, 10f));
273
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
274
+ }
275
+
276
+ [Test]
277
+ public void FastIntersects2DBoundsTouchingEdgesReturnsTrue()
278
+ {
279
+ Bounds bounds1 = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
280
+ Bounds bounds2 = new(new Vector3(10f, 5f, 0f), new Vector3(10f, 10f, 10f));
281
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
282
+ }
283
+
284
+ [Test]
285
+ public void FastIntersects2DBoundsSeparatedBoundsReturnsFalse()
286
+ {
287
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
288
+ Bounds bounds2 = new(new Vector3(20f, 20f, 0f), new Vector3(10f, 10f, 10f));
289
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
290
+ }
291
+
292
+ [Test]
293
+ public void FastIntersects2DBoundsOneInsideOtherReturnsTrue()
294
+ {
295
+ Bounds bounds1 = new(new Vector3(50f, 50f, 0f), new Vector3(100f, 100f, 100f));
296
+ Bounds bounds2 = new(new Vector3(50f, 50f, 0f), new Vector3(50f, 50f, 50f));
297
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
298
+ }
299
+
300
+ [Test]
301
+ public void FastIntersects2DBoundsIdenticalBoundsReturnsTrue()
302
+ {
303
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
304
+ Assert.IsTrue(bounds.FastIntersects2D(bounds));
305
+ }
306
+
307
+ [Test]
308
+ public void FastIntersects2DBoundsNegativeCoordinatesOverlappingReturnsTrue()
309
+ {
310
+ Bounds bounds1 = new(new Vector3(-5f, -5f, 0f), new Vector3(10f, 10f, 10f));
311
+ Bounds bounds2 = new(new Vector3(-3f, -3f, 0f), new Vector3(10f, 10f, 10f));
312
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
313
+ }
314
+
315
+ [Test]
316
+ public void FastIntersects2DBoundsSeparatedOnXAxisReturnsFalse()
317
+ {
318
+ Bounds bounds1 = new(new Vector3(0f, 5f, 0f), new Vector3(10f, 10f, 10f));
319
+ Bounds bounds2 = new(new Vector3(20f, 5f, 0f), new Vector3(10f, 10f, 10f));
320
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
321
+ }
322
+
323
+ [Test]
324
+ public void FastIntersects2DBoundsSeparatedOnYAxisReturnsFalse()
325
+ {
326
+ Bounds bounds1 = new(new Vector3(5f, 0f, 0f), new Vector3(10f, 10f, 10f));
327
+ Bounds bounds2 = new(new Vector3(5f, 20f, 0f), new Vector3(10f, 10f, 10f));
328
+ Assert.IsFalse(bounds1.FastIntersects2D(bounds2));
329
+ }
330
+
331
+ [Test]
332
+ public void FastIntersects2DBoundsVerySmallBoundsOverlappingReturnsTrue()
333
+ {
334
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
335
+ Bounds bounds2 = new(new Vector3(0.005f, 0.005f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
336
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
337
+ }
338
+
339
+ [Test]
340
+ public void FastIntersects2DBoundsPartialOverlapReturnsTrue()
341
+ {
342
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
343
+ Bounds bounds2 = new(new Vector3(8f, 8f, 0f), new Vector3(10f, 10f, 10f));
344
+ Assert.IsTrue(bounds1.FastIntersects2D(bounds2));
345
+ }
346
+
347
+ [Test]
348
+ public void Overlaps2DFullyContainedBoundsReturnsTrue()
349
+ {
350
+ Bounds outer = new(new Vector3(50f, 50f, 0f), new Vector3(100f, 100f, 100f));
351
+ Bounds inner = new(new Vector3(50f, 50f, 0f), new Vector3(50f, 50f, 50f));
352
+ Assert.IsTrue(outer.Overlaps2D(inner));
353
+ }
354
+
355
+ [Test]
356
+ public void Overlaps2DIdenticalBoundsReturnsTrue()
357
+ {
358
+ Bounds bounds = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
359
+ Assert.IsTrue(bounds.Overlaps2D(bounds));
360
+ }
361
+
362
+ [Test]
363
+ public void Overlaps2DPartiallyOverlappingReturnsTrue()
364
+ {
365
+ Bounds bounds1 = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
366
+ Bounds bounds2 = new(new Vector3(8f, 8f, 0f), new Vector3(10f, 10f, 10f));
367
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
368
+ }
369
+
370
+ [Test]
371
+ public void Overlaps2DOtherMinBelowBoundsMinReturnsTrue()
372
+ {
373
+ Bounds bounds1 = new(new Vector3(10f, 10f, 0f), new Vector3(10f, 10f, 10f));
374
+ Bounds bounds2 = new(new Vector3(5f, 10f, 0f), new Vector3(10f, 10f, 10f));
375
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
376
+ }
377
+
378
+ [Test]
379
+ public void Overlaps2DOtherMaxAboveBoundsMaxReturnsTrue()
380
+ {
381
+ Bounds bounds1 = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
382
+ Bounds bounds2 = new(new Vector3(6f, 6f, 0f), new Vector3(20f, 20f, 20f));
383
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
384
+ }
385
+
386
+ [Test]
387
+ public void Overlaps2DOtherExactlyAtBoundaryReturnsTrue()
388
+ {
389
+ Bounds bounds1 = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
390
+ Bounds bounds2 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
391
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
392
+ }
393
+
394
+ [Test]
395
+ public void Overlaps2DSeparatedBoundsReturnsFalse()
396
+ {
397
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
398
+ Bounds bounds2 = new(new Vector3(20f, 20f, 0f), new Vector3(10f, 10f, 10f));
399
+ Assert.IsFalse(bounds1.Overlaps2D(bounds2));
400
+ }
401
+
402
+ [Test]
403
+ public void Overlaps2DNegativeCoordinatesFullyContainedReturnsTrue()
404
+ {
405
+ Bounds bounds1 = new(new Vector3(-10f, -10f, 0f), new Vector3(20f, 20f, 20f));
406
+ Bounds bounds2 = new(new Vector3(-5f, -5f, 0f), new Vector3(10f, 10f, 10f));
407
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
408
+ }
409
+
410
+ [Test]
411
+ public void Overlaps2DVerySmallBoundsFullyContainedReturnsTrue()
412
+ {
413
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
414
+ Bounds bounds2 = new(new Vector3(5f, 5f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
415
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
416
+ }
417
+
418
+ [Test]
419
+ public void Overlaps2DTouchingEdgeFromInsideReturnsTrue()
420
+ {
421
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
422
+ Bounds bounds2 = new(new Vector3(0f, 0f, 0f), new Vector3(5f, 5f, 5f));
423
+ Assert.IsTrue(bounds1.Overlaps2D(bounds2));
424
+ }
425
+
426
+ [Test]
427
+ public void WithPaddingPositivePaddingExpandsBounds()
428
+ {
429
+ BoundsInt bounds = new(5, 5, 0, 10, 10, 10);
430
+ BoundsInt padded = bounds.WithPadding(2, 3);
431
+
432
+ Assert.AreEqual(3, padded.xMin);
433
+ Assert.AreEqual(2, padded.yMin);
434
+ Assert.AreEqual(17, padded.xMax);
435
+ Assert.AreEqual(18, padded.yMax);
436
+ Assert.AreEqual(14, padded.size.x);
437
+ Assert.AreEqual(16, padded.size.y);
438
+ }
439
+
440
+ [Test]
441
+ public void WithPaddingZeroPaddingReturnsSameBounds()
442
+ {
443
+ BoundsInt bounds = new(5, 5, 0, 10, 10, 10);
444
+ BoundsInt padded = bounds.WithPadding(0, 0);
445
+
446
+ Assert.AreEqual(bounds.xMin, padded.xMin);
447
+ Assert.AreEqual(bounds.yMin, padded.yMin);
448
+ Assert.AreEqual(bounds.size.x, padded.size.x);
449
+ Assert.AreEqual(bounds.size.y, padded.size.y);
450
+ }
451
+
452
+ [Test]
453
+ public void WithPaddingNegativePaddingShrinksBounds()
454
+ {
455
+ BoundsInt bounds = new(0, 0, 0, 20, 20, 20);
456
+ BoundsInt padded = bounds.WithPadding(-2, -3);
457
+
458
+ Assert.AreEqual(2, padded.xMin);
459
+ Assert.AreEqual(3, padded.yMin);
460
+ Assert.AreEqual(18, padded.xMax);
461
+ Assert.AreEqual(17, padded.yMax);
462
+ Assert.AreEqual(16, padded.size.x);
463
+ Assert.AreEqual(14, padded.size.y);
464
+ }
465
+
466
+ [Test]
467
+ public void WithPaddingAsymmetricPaddingWorksCorrectly()
468
+ {
469
+ BoundsInt bounds = new(10, 10, 0, 10, 10, 10);
470
+ BoundsInt padded = bounds.WithPadding(5, 2);
471
+
472
+ Assert.AreEqual(5, padded.xMin);
473
+ Assert.AreEqual(8, padded.yMin);
474
+ Assert.AreEqual(25, padded.xMax);
475
+ Assert.AreEqual(22, padded.yMax);
476
+ }
477
+
478
+ [Test]
479
+ public void WithPaddingNegativeBoundsWorksCorrectly()
480
+ {
481
+ BoundsInt bounds = new(-10, -10, 0, 10, 10, 10);
482
+ BoundsInt padded = bounds.WithPadding(2, 2);
483
+
484
+ Assert.AreEqual(-12, padded.xMin);
485
+ Assert.AreEqual(-12, padded.yMin);
486
+ Assert.AreEqual(2, padded.xMax);
487
+ Assert.AreEqual(2, padded.yMax);
488
+ }
489
+
490
+ [Test]
491
+ public void WithPaddingPreservesZCoordinate()
492
+ {
493
+ BoundsInt bounds = new(5, 5, 7, 10, 10, 10);
494
+ BoundsInt padded = bounds.WithPadding(2, 3);
495
+
496
+ Assert.AreEqual(bounds.zMin, padded.zMin);
497
+ Assert.AreEqual(bounds.size.z, padded.size.z);
498
+ }
499
+
500
+ [Test]
501
+ public void WithPaddingLargePaddingWorksCorrectly()
502
+ {
503
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
504
+ BoundsInt padded = bounds.WithPadding(100, 200);
505
+
506
+ Assert.AreEqual(-100, padded.xMin);
507
+ Assert.AreEqual(-200, padded.yMin);
508
+ Assert.AreEqual(210, padded.size.x);
509
+ Assert.AreEqual(410, padded.size.y);
510
+ }
511
+
512
+ [Test]
513
+ public void WithPaddingExcessiveNegativePaddingCanResultInNegativeSize()
514
+ {
515
+ BoundsInt bounds = new(0, 0, 0, 10, 10, 10);
516
+ BoundsInt padded = bounds.WithPadding(-10, -10);
517
+
518
+ // Size becomes 10 + 2*(-10) = -10
519
+ Assert.AreEqual(-10, padded.size.x);
520
+ Assert.AreEqual(-10, padded.size.y);
521
+ }
522
+
523
+ [Test]
524
+ public void WithPaddingSinglePointBoundsExpandsCorrectly()
525
+ {
526
+ BoundsInt bounds = new(5, 5, 0, 1, 1, 1);
527
+ BoundsInt padded = bounds.WithPadding(2, 2);
528
+
529
+ Assert.AreEqual(3, padded.xMin);
530
+ Assert.AreEqual(3, padded.yMin);
531
+ Assert.AreEqual(5, padded.size.x);
532
+ Assert.AreEqual(5, padded.size.y);
533
+ }
534
+
535
+ [Test]
536
+ public void OrientationColinearPointsReturnsColinear()
537
+ {
538
+ Vector2 p = new(0f, 0f);
539
+ Vector2 q = new(1f, 1f);
540
+ Vector2 r = new(2f, 2f);
541
+
542
+ Assert.AreEqual(
543
+ UnityExtensions.OrientationType.Colinear,
544
+ UnityExtensions.Orientation(p, q, r)
545
+ );
546
+ }
547
+
548
+ [Test]
549
+ public void OrientationClockwisePointsReturnsClockwise()
550
+ {
551
+ Vector2 p = new(0f, 0f);
552
+ Vector2 q = new(1f, 1f);
553
+ Vector2 r = new(2f, 0f);
554
+
555
+ Assert.AreEqual(
556
+ UnityExtensions.OrientationType.Clockwise,
557
+ UnityExtensions.Orientation(p, q, r)
558
+ );
559
+ }
560
+
561
+ [Test]
562
+ public void OrientationCounterclockwisePointsReturnsCounterclockwise()
563
+ {
564
+ Vector2 p = new(0f, 0f);
565
+ Vector2 q = new(1f, 1f);
566
+ Vector2 r = new(0f, 2f);
567
+
568
+ Assert.AreEqual(
569
+ UnityExtensions.OrientationType.Counterclockwise,
570
+ UnityExtensions.Orientation(p, q, r)
571
+ );
572
+ }
573
+
574
+ [Test]
575
+ public void OrientationHorizontalColinearPointsReturnsColinear()
576
+ {
577
+ Vector2 p = new(0f, 5f);
578
+ Vector2 q = new(5f, 5f);
579
+ Vector2 r = new(10f, 5f);
580
+
581
+ Assert.AreEqual(
582
+ UnityExtensions.OrientationType.Colinear,
583
+ UnityExtensions.Orientation(p, q, r)
584
+ );
585
+ }
586
+
587
+ [Test]
588
+ public void OrientationVerticalColinearPointsReturnsColinear()
589
+ {
590
+ Vector2 p = new(5f, 0f);
591
+ Vector2 q = new(5f, 5f);
592
+ Vector2 r = new(5f, 10f);
593
+
594
+ Assert.AreEqual(
595
+ UnityExtensions.OrientationType.Colinear,
596
+ UnityExtensions.Orientation(p, q, r)
597
+ );
598
+ }
599
+
600
+ [Test]
601
+ public void OrientationIdenticalPointsReturnsColinear()
602
+ {
603
+ Vector2 p = new(5f, 5f);
604
+
605
+ Assert.AreEqual(
606
+ UnityExtensions.OrientationType.Colinear,
607
+ UnityExtensions.Orientation(p, p, p)
608
+ );
609
+ }
610
+
611
+ [Test]
612
+ public void OrientationNegativeCoordinatesClockwiseReturnsClockwise()
613
+ {
614
+ Vector2 p = new(-5f, -5f);
615
+ Vector2 q = new(0f, 0f);
616
+ Vector2 r = new(5f, -5f);
617
+
618
+ Assert.AreEqual(
619
+ UnityExtensions.OrientationType.Clockwise,
620
+ UnityExtensions.Orientation(p, q, r)
621
+ );
622
+ }
623
+
624
+ [Test]
625
+ public void OrientationVerySmallAnglesDetectsCorrectly()
626
+ {
627
+ Vector2 p = new(0f, 0f);
628
+ Vector2 q = new(100f, 0f);
629
+ Vector2 r = new(200f, 0.1f);
630
+
631
+ // Should be counterclockwise due to slight upward deviation
632
+ Assert.AreEqual(
633
+ UnityExtensions.OrientationType.Counterclockwise,
634
+ UnityExtensions.Orientation(p, q, r)
635
+ );
636
+ }
637
+
638
+ [Test]
639
+ public void OrientationRightAngleClockwiseReturnsClockwise()
640
+ {
641
+ Vector2 p = new(0f, 0f);
642
+ Vector2 q = new(1f, 0f);
643
+ Vector2 r = new(1f, -1f);
644
+
645
+ Assert.AreEqual(
646
+ UnityExtensions.OrientationType.Clockwise,
647
+ UnityExtensions.Orientation(p, q, r)
648
+ );
649
+ }
650
+
651
+ [Test]
652
+ public void OrientationRightAngleCounterclockwiseReturnsCounterclockwise()
653
+ {
654
+ Vector2 p = new(0f, 0f);
655
+ Vector2 q = new(1f, 0f);
656
+ Vector2 r = new(1f, 1f);
657
+
658
+ Assert.AreEqual(
659
+ UnityExtensions.OrientationType.Counterclockwise,
660
+ UnityExtensions.Orientation(p, q, r)
661
+ );
662
+ }
663
+
664
+ [Test]
665
+ public void RotateZeroDegreesReturnsOriginalVector()
666
+ {
667
+ Vector2 v = new(1f, 0f);
668
+ Vector2 rotated = v.Rotate(0f);
669
+
670
+ Assert.AreEqual(1f, rotated.x, 1e-5f);
671
+ Assert.AreEqual(0f, rotated.y, 1e-5f);
672
+ }
673
+
674
+ [Test]
675
+ public void Rotate90DegreesRotatesCorrectly()
676
+ {
677
+ Vector2 v = new(1f, 0f);
678
+ Vector2 rotated = v.Rotate(90f);
679
+
680
+ Assert.AreEqual(0f, rotated.x, 1e-5f);
681
+ Assert.AreEqual(1f, rotated.y, 1e-5f);
682
+ }
683
+
684
+ [Test]
685
+ public void Rotate180DegreesRotatesCorrectly()
686
+ {
687
+ Vector2 v = new(1f, 0f);
688
+ Vector2 rotated = v.Rotate(180f);
689
+
690
+ Assert.AreEqual(-1f, rotated.x, 1e-5f);
691
+ Assert.AreEqual(0f, rotated.y, 1e-5f);
692
+ }
693
+
694
+ [Test]
695
+ public void Rotate270DegreesRotatesCorrectly()
696
+ {
697
+ Vector2 v = new(1f, 0f);
698
+ Vector2 rotated = v.Rotate(270f);
699
+
700
+ Assert.AreEqual(0f, rotated.x, 1e-5f);
701
+ Assert.AreEqual(-1f, rotated.y, 1e-5f);
702
+ }
703
+
704
+ [Test]
705
+ public void Rotate360DegreesReturnsOriginalVector()
706
+ {
707
+ Vector2 v = new(1f, 0f);
708
+ Vector2 rotated = v.Rotate(360f);
709
+
710
+ Assert.AreEqual(1f, rotated.x, 1e-5f);
711
+ Assert.AreEqual(0f, rotated.y, 1e-5f);
712
+ }
713
+
714
+ [Test]
715
+ public void RotateNegativeAngleRotatesClockwise()
716
+ {
717
+ Vector2 v = new(1f, 0f);
718
+ Vector2 rotated = v.Rotate(-90f);
719
+
720
+ Assert.AreEqual(0f, rotated.x, 1e-5f);
721
+ Assert.AreEqual(-1f, rotated.y, 1e-5f);
722
+ }
723
+
724
+ [Test]
725
+ public void Rotate45DegreesRotatesCorrectly()
726
+ {
727
+ Vector2 v = new(1f, 0f);
728
+ Vector2 rotated = v.Rotate(45f);
729
+
730
+ float expected = Mathf.Sqrt(2f) / 2f;
731
+ Assert.AreEqual(expected, rotated.x, 1e-5f);
732
+ Assert.AreEqual(expected, rotated.y, 1e-5f);
733
+ }
734
+
735
+ [Test]
736
+ public void RotateZeroVectorReturnsZeroVector()
737
+ {
738
+ Vector2 v = new(0f, 0f);
739
+ Vector2 rotated = v.Rotate(45f);
740
+
741
+ Assert.AreEqual(0f, rotated.x, 1e-5f);
742
+ Assert.AreEqual(0f, rotated.y, 1e-5f);
743
+ }
744
+
745
+ [Test]
746
+ public void RotateLargeAngleRotatesCorrectly()
747
+ {
748
+ Vector2 v = new(1f, 0f);
749
+ Vector2 rotated = v.Rotate(720f); // Two full rotations
750
+
751
+ Assert.AreEqual(1f, rotated.x, 1e-5f);
752
+ Assert.AreEqual(0f, rotated.y, 1e-5f);
753
+ }
754
+
755
+ [Test]
756
+ public void RotatePreservesMagnitude()
757
+ {
758
+ Vector2 v = new(3f, 4f);
759
+ float originalMagnitude = v.magnitude;
760
+ Vector2 rotated = v.Rotate(73f);
761
+
762
+ Assert.AreEqual(originalMagnitude, rotated.magnitude, 1e-5f);
763
+ }
764
+
765
+ [Test]
766
+ public void RotateNonUnitVectorRotatesCorrectly()
767
+ {
768
+ Vector2 v = new(3f, 4f);
769
+ Vector2 rotated = v.Rotate(90f);
770
+
771
+ Assert.AreEqual(-4f, rotated.x, 1e-5f);
772
+ Assert.AreEqual(3f, rotated.y, 1e-5f);
773
+ }
774
+
775
+ [Test]
776
+ public void RotateNegativeCoordinatesRotatesCorrectly()
777
+ {
778
+ Vector2 v = new(-1f, -1f);
779
+ Vector2 rotated = v.Rotate(90f);
780
+
781
+ Assert.AreEqual(1f, rotated.x, 1e-5f);
782
+ Assert.AreEqual(-1f, rotated.y, 1e-5f);
783
+ }
784
+
785
+ [Test]
786
+ public void FastIntersects3DOverlappingBoundsReturnsTrue()
787
+ {
788
+ Bounds bounds1 = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
789
+ Bounds bounds2 = new(new Vector3(8f, 8f, 8f), new Vector3(10f, 10f, 10f));
790
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
791
+ }
792
+
793
+ [Test]
794
+ public void FastIntersects3DTouchingEdgesReturnsTrue()
795
+ {
796
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
797
+ Bounds bounds2 = new(new Vector3(10f, 0f, 0f), new Vector3(10f, 10f, 10f));
798
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
799
+ }
800
+
801
+ [Test]
802
+ public void FastIntersects3DSeparatedBoundsReturnsFalse()
803
+ {
804
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
805
+ Bounds bounds2 = new(new Vector3(20f, 20f, 20f), new Vector3(10f, 10f, 10f));
806
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
807
+ }
808
+
809
+ [Test]
810
+ public void FastIntersects3DOneInsideOtherReturnsTrue()
811
+ {
812
+ Bounds bounds1 = new(new Vector3(50f, 50f, 50f), new Vector3(100f, 100f, 100f));
813
+ Bounds bounds2 = new(new Vector3(50f, 50f, 50f), new Vector3(50f, 50f, 50f));
814
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
815
+ }
816
+
817
+ [Test]
818
+ public void FastIntersects3DIdenticalBoundsReturnsTrue()
819
+ {
820
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
821
+ Assert.IsTrue(bounds.FastIntersects(bounds));
822
+ }
823
+
824
+ [Test]
825
+ public void FastIntersects3DSeparatedOnXAxisReturnsFalse()
826
+ {
827
+ Bounds bounds1 = new(new Vector3(0f, 5f, 5f), new Vector3(10f, 10f, 10f));
828
+ Bounds bounds2 = new(new Vector3(20f, 5f, 5f), new Vector3(10f, 10f, 10f));
829
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
830
+ }
831
+
832
+ [Test]
833
+ public void FastIntersects3DSeparatedOnYAxisReturnsFalse()
834
+ {
835
+ Bounds bounds1 = new(new Vector3(5f, 0f, 5f), new Vector3(10f, 10f, 10f));
836
+ Bounds bounds2 = new(new Vector3(5f, 20f, 5f), new Vector3(10f, 10f, 10f));
837
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
838
+ }
839
+
840
+ [Test]
841
+ public void FastIntersects3DSeparatedOnZAxisReturnsFalse()
842
+ {
843
+ Bounds bounds1 = new(new Vector3(5f, 5f, 0f), new Vector3(10f, 10f, 10f));
844
+ Bounds bounds2 = new(new Vector3(5f, 5f, 20f), new Vector3(10f, 10f, 10f));
845
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
846
+ }
847
+
848
+ [Test]
849
+ public void FastIntersects3DNegativeCoordinatesOverlappingReturnsTrue()
850
+ {
851
+ Bounds bounds1 = new(new Vector3(-5f, -5f, -5f), new Vector3(10f, 10f, 10f));
852
+ Bounds bounds2 = new(new Vector3(-3f, -3f, -3f), new Vector3(10f, 10f, 10f));
853
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
854
+ }
855
+
856
+ [Test]
857
+ public void FastIntersects3DPartialOverlapAllAxesReturnsTrue()
858
+ {
859
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
860
+ Bounds bounds2 = new(new Vector3(8f, 8f, 8f), new Vector3(10f, 10f, 10f));
861
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
862
+ }
863
+
864
+ [Test]
865
+ public void FastIntersects3DVerySmallBoundsOverlappingReturnsTrue()
866
+ {
867
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
868
+ Bounds bounds2 = new(
869
+ new Vector3(0.005f, 0.005f, 0.005f),
870
+ new Vector3(0.01f, 0.01f, 0.01f)
871
+ );
872
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
873
+ }
874
+
875
+ [Test]
876
+ public void FastIntersects3DVeryLargeBoundsOverlappingReturnsTrue()
877
+ {
878
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10000f, 10000f, 10000f));
879
+ Bounds bounds2 = new(
880
+ new Vector3(5000f, 5000f, 5000f),
881
+ new Vector3(10000f, 10000f, 10000f)
882
+ );
883
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
884
+ }
885
+
886
+ [Test]
887
+ public void FastIntersects3DAlmostTouchingBoundsReturnsFalse()
888
+ {
889
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
890
+ // Place bounds2 just beyond touching so there's a gap on X
891
+ Bounds bounds2 = new(new Vector3(10.01f, 0f, 0f), new Vector3(10f, 10f, 10f));
892
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
893
+ }
894
+
895
+ [Test]
896
+ public void FastIntersects3DTouchingAtSinglePointReturnsTrue()
897
+ {
898
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
899
+ Bounds bounds2 = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
900
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
901
+ }
902
+
903
+ [Test]
904
+ public void FastIntersects3DOnlyXOverlapsReturnsFalse()
905
+ {
906
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
907
+ Bounds bounds2 = new(new Vector3(5f, 11f, 11f), new Vector3(10f, 10f, 10f));
908
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
909
+ }
910
+
911
+ [Test]
912
+ public void FastIntersects3DOnlyYOverlapsReturnsFalse()
913
+ {
914
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
915
+ Bounds bounds2 = new(new Vector3(11f, 5f, 11f), new Vector3(10f, 10f, 10f));
916
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
917
+ }
918
+
919
+ [Test]
920
+ public void FastIntersects3DOnlyZOverlapsReturnsFalse()
921
+ {
922
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
923
+ Bounds bounds2 = new(new Vector3(11f, 11f, 5f), new Vector3(10f, 10f, 10f));
924
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
925
+ }
926
+
927
+ [Test]
928
+ public void FastIntersects3DXYOverlapZSeparatedReturnsFalse()
929
+ {
930
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
931
+ Bounds bounds2 = new(new Vector3(5f, 5f, 11f), new Vector3(10f, 10f, 10f));
932
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
933
+ }
934
+
935
+ [Test]
936
+ public void FastIntersects3DXZOverlapYSeparatedReturnsFalse()
937
+ {
938
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
939
+ Bounds bounds2 = new(new Vector3(5f, 11f, 5f), new Vector3(10f, 10f, 10f));
940
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
941
+ }
942
+
943
+ [Test]
944
+ public void FastIntersects3DYZOverlapXSeparatedReturnsFalse()
945
+ {
946
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
947
+ Bounds bounds2 = new(new Vector3(11f, 5f, 5f), new Vector3(10f, 10f, 10f));
948
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
949
+ }
950
+
951
+ [Test]
952
+ public void FastIntersects3DBarelyOverlappingXReturnsTrue()
953
+ {
954
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
955
+ Bounds bounds2 = new(new Vector3(4.99f, 0f, 0f), new Vector3(10f, 10f, 10f));
956
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
957
+ }
958
+
959
+ [Test]
960
+ public void FastIntersects3DBarelyOverlappingYReturnsTrue()
961
+ {
962
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
963
+ Bounds bounds2 = new(new Vector3(0f, 4.99f, 0f), new Vector3(10f, 10f, 10f));
964
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
965
+ }
966
+
967
+ [Test]
968
+ public void FastIntersects3DBarelyOverlappingZReturnsTrue()
969
+ {
970
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
971
+ Bounds bounds2 = new(new Vector3(0f, 0f, 4.99f), new Vector3(10f, 10f, 10f));
972
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
973
+ }
974
+
975
+ [Test]
976
+ public void FastIntersects3DBoundsWithZeroVolumeReturnsFalse()
977
+ {
978
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
979
+ Bounds bounds2 = new(new Vector3(5f, 5f, 5f), new Vector3(0f, 0f, 0f));
980
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
981
+ }
982
+
983
+ [Test]
984
+ public void FastIntersects3DBothBoundsWithZeroVolumeReturnsFalse()
985
+ {
986
+ Bounds bounds1 = new(new Vector3(5f, 5f, 5f), new Vector3(0f, 0f, 0f));
987
+ Bounds bounds2 = new(new Vector3(5f, 5f, 5f), new Vector3(0f, 0f, 0f));
988
+ Assert.IsFalse(bounds1.FastIntersects(bounds2));
989
+ }
990
+
991
+ [Test]
992
+ public void FastIntersects3DThinSliceOverlapsReturnsTrue()
993
+ {
994
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
995
+ Bounds bounds2 = new(new Vector3(5f, 5f, 5f), new Vector3(0.01f, 10f, 10f));
996
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
997
+ }
998
+
999
+ [Test]
1000
+ public void FastIntersects3DLineSegmentOverlapsReturnsTrue()
1001
+ {
1002
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1003
+ Bounds bounds2 = new(new Vector3(5f, 5f, 5f), new Vector3(0.01f, 0.01f, 10f));
1004
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
1005
+ }
1006
+
1007
+ [Test]
1008
+ public void FastIntersects3DExtremeNegativeCoordinatesReturnsTrue()
1009
+ {
1010
+ Bounds bounds1 = new(
1011
+ new Vector3(-1000f, -1000f, -1000f),
1012
+ new Vector3(100f, 100f, 100f)
1013
+ );
1014
+ Bounds bounds2 = new(new Vector3(-960f, -960f, -960f), new Vector3(100f, 100f, 100f));
1015
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
1016
+ }
1017
+
1018
+ [Test]
1019
+ public void FastIntersects3DMixedPositiveNegativeCoordinatesReturnsTrue()
1020
+ {
1021
+ Bounds bounds1 = new(new Vector3(-5f, -5f, -5f), new Vector3(20f, 20f, 20f));
1022
+ Bounds bounds2 = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1023
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
1024
+ }
1025
+
1026
+ [Test]
1027
+ public void FastIntersects3DMinimalOverlapAllAxesReturnsTrue()
1028
+ {
1029
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1030
+ Bounds bounds2 = new(new Vector3(4.99f, 4.99f, 4.99f), new Vector3(10f, 10f, 10f));
1031
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
1032
+ }
1033
+
1034
+ [Test]
1035
+ public void FastIntersects3DCompletelyContainingBoundsReturnsTrue()
1036
+ {
1037
+ Bounds bounds1 = new(new Vector3(0f, 0f, 0f), new Vector3(100f, 100f, 100f));
1038
+ Bounds bounds2 = new(new Vector3(25f, 25f, 25f), new Vector3(10f, 10f, 10f));
1039
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
1040
+ }
1041
+
1042
+ [Test]
1043
+ public void FastIntersects3DCompletelyContainedBoundsReturnsTrue()
1044
+ {
1045
+ Bounds bounds1 = new(new Vector3(25f, 25f, 25f), new Vector3(10f, 10f, 10f));
1046
+ Bounds bounds2 = new(new Vector3(0f, 0f, 0f), new Vector3(100f, 100f, 100f));
1047
+ Assert.IsTrue(bounds1.FastIntersects(bounds2));
1048
+ }
1049
+
1050
+ [Test]
1051
+ public void FastContains3DPointInsideReturnsTrue()
1052
+ {
1053
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1054
+ Vector3 point = new(5f, 5f, 5f);
1055
+ Assert.IsTrue(bounds.FastContains3D(point));
1056
+ }
1057
+
1058
+ [Test]
1059
+ public void FastContains3DPointAtMinReturnsTrue()
1060
+ {
1061
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1062
+ Vector3 point = new(0f, 0f, 0f);
1063
+ Assert.IsTrue(bounds.FastContains3D(point));
1064
+ }
1065
+
1066
+ [Test]
1067
+ public void FastContains3DPointAtMaxReturnsFalse()
1068
+ {
1069
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1070
+ Vector3 point = new(10f, 10f, 10f);
1071
+ Assert.IsFalse(bounds.FastContains3D(point));
1072
+ }
1073
+
1074
+ [Test]
1075
+ public void FastContains3DPointJustBelowMaxReturnsTrue()
1076
+ {
1077
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1078
+ Vector3 point = new(9.99f, 9.99f, 9.99f);
1079
+ Assert.IsTrue(bounds.FastContains3D(point));
1080
+ }
1081
+
1082
+ [Test]
1083
+ public void FastContains3DPointJustBelowMinReturnsFalse()
1084
+ {
1085
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1086
+ Vector3 point = new(-0.01f, 5f, 5f);
1087
+ Assert.IsFalse(bounds.FastContains3D(point));
1088
+ }
1089
+
1090
+ [Test]
1091
+ public void FastContains3DPointOutsideXReturnsFalse()
1092
+ {
1093
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1094
+ Vector3 point = new(10.1f, 5f, 5f);
1095
+ Assert.IsFalse(bounds.FastContains3D(point));
1096
+ }
1097
+
1098
+ [Test]
1099
+ public void FastContains3DPointOutsideYReturnsFalse()
1100
+ {
1101
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1102
+ Vector3 point = new(5f, 10.1f, 5f);
1103
+ Assert.IsFalse(bounds.FastContains3D(point));
1104
+ }
1105
+
1106
+ [Test]
1107
+ public void FastContains3DPointOutsideZReturnsFalse()
1108
+ {
1109
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1110
+ Vector3 point = new(5f, 5f, 10.1f);
1111
+ Assert.IsFalse(bounds.FastContains3D(point));
1112
+ }
1113
+
1114
+ [Test]
1115
+ public void FastContains3DPointOnMaxXEdgeReturnsFalse()
1116
+ {
1117
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1118
+ Vector3 point = new(5f, 2f, 2f);
1119
+ Assert.IsFalse(bounds.FastContains3D(point));
1120
+ }
1121
+
1122
+ [Test]
1123
+ public void FastContains3DPointOnMaxYEdgeReturnsFalse()
1124
+ {
1125
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1126
+ Vector3 point = new(2f, 5f, 2f);
1127
+ Assert.IsFalse(bounds.FastContains3D(point));
1128
+ }
1129
+
1130
+ [Test]
1131
+ public void FastContains3DPointOnMaxZEdgeReturnsFalse()
1132
+ {
1133
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1134
+ Vector3 point = new(2f, 2f, 5f);
1135
+ Assert.IsFalse(bounds.FastContains3D(point));
1136
+ }
1137
+
1138
+ [Test]
1139
+ public void FastContains3DPointNegativeCoordinatesInsideReturnsTrue()
1140
+ {
1141
+ Bounds bounds = new(new Vector3(-5f, -5f, -5f), new Vector3(10f, 10f, 10f));
1142
+ Vector3 point = new(-3f, -3f, -3f);
1143
+ Assert.IsTrue(bounds.FastContains3D(point));
1144
+ }
1145
+
1146
+ [Test]
1147
+ public void FastContains3DPointNegativeCoordinatesOutsideReturnsFalse()
1148
+ {
1149
+ Bounds bounds = new(new Vector3(-5f, -5f, -5f), new Vector3(10f, 10f, 10f));
1150
+ // Put x below bounds.min.x (-10) so the point is truly outside
1151
+ Vector3 point = new(-10.1f, -3f, -3f);
1152
+ Assert.IsFalse(bounds.FastContains3D(point));
1153
+ }
1154
+
1155
+ [Test]
1156
+ public void FastContains3DPointVerySmallBoundsInsideReturnsTrue()
1157
+ {
1158
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
1159
+ // Use a point strictly inside the half-open max boundary
1160
+ Vector3 point = new(0.0049f, 0.0049f, 0.0049f);
1161
+ Assert.IsTrue(bounds.FastContains3D(point));
1162
+ }
1163
+
1164
+ [Test]
1165
+ public void FastContains3DPointVeryLargeBoundsInsideReturnsTrue()
1166
+ {
1167
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10000f, 10000f, 10000f));
1168
+ Vector3 point = new(4999f, 4999f, 4999f);
1169
+ Assert.IsTrue(bounds.FastContains3D(point));
1170
+ }
1171
+
1172
+ [Test]
1173
+ public void FastContains3DPointAtCenterReturnsTrue()
1174
+ {
1175
+ Bounds bounds = new(new Vector3(10f, 10f, 10f), new Vector3(20f, 20f, 20f));
1176
+ Vector3 point = bounds.center;
1177
+ Assert.IsTrue(bounds.FastContains3D(point));
1178
+ }
1179
+
1180
+ [Test]
1181
+ public void FastContains3DPointZeroBoundsReturnsFalse()
1182
+ {
1183
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(0f, 0f, 0f));
1184
+ Vector3 point = new(5f, 5f, 5f);
1185
+ Assert.IsFalse(bounds.FastContains3D(point));
1186
+ }
1187
+
1188
+ [Test]
1189
+ public void FastContains3DPointOnMinXEdgeReturnsTrue()
1190
+ {
1191
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1192
+ Vector3 point = new(-5f, 2f, 2f);
1193
+ Assert.IsTrue(bounds.FastContains3D(point));
1194
+ }
1195
+
1196
+ [Test]
1197
+ public void FastContains3DPointOnMinYEdgeReturnsTrue()
1198
+ {
1199
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1200
+ Vector3 point = new(2f, -5f, 2f);
1201
+ Assert.IsTrue(bounds.FastContains3D(point));
1202
+ }
1203
+
1204
+ [Test]
1205
+ public void FastContains3DPointOnMinZEdgeReturnsTrue()
1206
+ {
1207
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1208
+ Vector3 point = new(2f, 2f, -5f);
1209
+ Assert.IsTrue(bounds.FastContains3D(point));
1210
+ }
1211
+
1212
+ [Test]
1213
+ public void FastContains3DPointExactlyAtMaxXReturnsFalse()
1214
+ {
1215
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1216
+ Vector3 point = new(5f, 2f, 2f);
1217
+ Assert.IsFalse(bounds.FastContains3D(point));
1218
+ }
1219
+
1220
+ [Test]
1221
+ public void FastContains3DPointExactlyAtMaxYReturnsFalse()
1222
+ {
1223
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1224
+ Vector3 point = new(2f, 5f, 2f);
1225
+ Assert.IsFalse(bounds.FastContains3D(point));
1226
+ }
1227
+
1228
+ [Test]
1229
+ public void FastContains3DPointExactlyAtMaxZReturnsFalse()
1230
+ {
1231
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1232
+ Vector3 point = new(2f, 2f, 5f);
1233
+ Assert.IsFalse(bounds.FastContains3D(point));
1234
+ }
1235
+
1236
+ [Test]
1237
+ public void FastContains3DPointBarelyInsideMinXReturnsTrue()
1238
+ {
1239
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1240
+ Vector3 point = new(-4.99f, 2f, 2f);
1241
+ Assert.IsTrue(bounds.FastContains3D(point));
1242
+ }
1243
+
1244
+ [Test]
1245
+ public void FastContains3DPointBarelyOutsideMaxXReturnsFalse()
1246
+ {
1247
+ Bounds bounds = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1248
+ Vector3 point = new(5.01f, 2f, 2f);
1249
+ Assert.IsFalse(bounds.FastContains3D(point));
1250
+ }
1251
+
1252
+ [Test]
1253
+ public void FastContains3DBoundsFullyContainedReturnsTrue()
1254
+ {
1255
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(100f, 100f, 100f));
1256
+ Bounds inner = new(new Vector3(25f, 25f, 25f), new Vector3(50f, 50f, 50f));
1257
+ Assert.IsTrue(outer.FastContains3D(inner));
1258
+ }
1259
+
1260
+ [Test]
1261
+ public void FastContains3DBoundsIdenticalBoundsReturnsTrue()
1262
+ {
1263
+ Bounds bounds = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1264
+ Assert.IsTrue(bounds.FastContains3D(bounds));
1265
+ }
1266
+
1267
+ [Test]
1268
+ public void FastContains3DBoundsPartiallyOutsideReturnsFalse()
1269
+ {
1270
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1271
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(20f, 20f, 20f));
1272
+ Assert.IsFalse(outer.FastContains3D(inner));
1273
+ }
1274
+
1275
+ [Test]
1276
+ public void FastContains3DBoundsCompletelyOutsideReturnsFalse()
1277
+ {
1278
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1279
+ Bounds inner = new(new Vector3(20f, 20f, 20f), new Vector3(10f, 10f, 10f));
1280
+ Assert.IsFalse(outer.FastContains3D(inner));
1281
+ }
1282
+
1283
+ [Test]
1284
+ public void FastContains3DBoundsInnerMinOutsideReturnsFalse()
1285
+ {
1286
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1287
+ Bounds inner = new(
1288
+ // Shift slightly so inner.min.x is strictly less than outer.min.x
1289
+ new Vector3(-5.1f, 5f, 5f),
1290
+ new Vector3(10f, 10f, 10f)
1291
+ );
1292
+ Assert.IsFalse(outer.FastContains3D(inner));
1293
+ }
1294
+
1295
+ [Test]
1296
+ public void FastContains3DBoundsInnerMaxOutsideReturnsFalse()
1297
+ {
1298
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1299
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(30f, 10f, 10f));
1300
+ Assert.IsFalse(outer.FastContains3D(inner));
1301
+ }
1302
+
1303
+ [Test]
1304
+ public void FastContains3DBoundsInnerTouchingOuterMinReturnsTrue()
1305
+ {
1306
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1307
+ Bounds inner = new(
1308
+ // Place inner so inner.min == outer.min and inner.max < outer.max (touches min only)
1309
+ new Vector3(-5f, -5f, -5f),
1310
+ new Vector3(10f, 10f, 10f)
1311
+ );
1312
+ Assert.IsTrue(outer.FastContains3D(inner));
1313
+ }
1314
+
1315
+ [Test]
1316
+ public void FastContains3DBoundsInnerTouchingOuterMaxReturnsTrue()
1317
+ {
1318
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1319
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1320
+ Assert.IsTrue(outer.FastContains3D(inner));
1321
+ }
1322
+
1323
+ [Test]
1324
+ public void FastContains3DBoundsInnerJustBeyondMaxReturnsFalse()
1325
+ {
1326
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1327
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(20.01f, 20f, 20f));
1328
+ Assert.IsFalse(outer.FastContains3D(inner));
1329
+ }
1330
+
1331
+ [Test]
1332
+ public void FastContains3DBoundsInnerJustBeyondMinReturnsFalse()
1333
+ {
1334
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1335
+ Bounds inner = new(new Vector3(-10.01f, -10f, -10f), new Vector3(20f, 20f, 20f));
1336
+ Assert.IsFalse(outer.FastContains3D(inner));
1337
+ }
1338
+
1339
+ [Test]
1340
+ public void FastContains3DBoundsNegativeCoordinatesFullyContainedReturnsTrue()
1341
+ {
1342
+ Bounds outer = new(new Vector3(-50f, -50f, -50f), new Vector3(100f, 100f, 100f));
1343
+ Bounds inner = new(new Vector3(-25f, -25f, -25f), new Vector3(50f, 50f, 50f));
1344
+ Assert.IsTrue(outer.FastContains3D(inner));
1345
+ }
1346
+
1347
+ [Test]
1348
+ public void FastContains3DBoundsVerySmallInnerReturnsTrue()
1349
+ {
1350
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1351
+ Bounds inner = new(
1352
+ // Place the very small inner well inside the outer
1353
+ new Vector3(0f, 0f, 0f),
1354
+ new Vector3(0.01f, 0.01f, 0.01f)
1355
+ );
1356
+ Assert.IsTrue(outer.FastContains3D(inner));
1357
+ }
1358
+
1359
+ [Test]
1360
+ public void FastContains3DBoundsVeryLargeOuterReturnsTrue()
1361
+ {
1362
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10000f, 10000f, 10000f));
1363
+ Bounds inner = new(new Vector3(100f, 100f, 100f), new Vector3(500f, 500f, 500f));
1364
+ Assert.IsTrue(outer.FastContains3D(inner));
1365
+ }
1366
+
1367
+ [Test]
1368
+ public void FastContains3DBoundsZeroVolumeInnerReturnsTrue()
1369
+ {
1370
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1371
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(0f, 0f, 0f));
1372
+ // Degenerate inner (point) at (5,5,5) is within outer; containment is inclusive
1373
+ Assert.IsTrue(outer.FastContains3D(inner));
1374
+ }
1375
+
1376
+ [Test]
1377
+ public void FastContains3DBoundsInnerExceedsOnXAxisReturnsFalse()
1378
+ {
1379
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1380
+ Bounds inner = new(new Vector3(0f, 2f, 2f), new Vector3(20f, 5f, 5f));
1381
+ Assert.IsFalse(outer.FastContains3D(inner));
1382
+ }
1383
+
1384
+ [Test]
1385
+ public void FastContains3DBoundsInnerExceedsOnYAxisReturnsFalse()
1386
+ {
1387
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1388
+ Bounds inner = new(new Vector3(2f, 0f, 2f), new Vector3(5f, 20f, 5f));
1389
+ Assert.IsFalse(outer.FastContains3D(inner));
1390
+ }
1391
+
1392
+ [Test]
1393
+ public void FastContains3DBoundsInnerExceedsOnZAxisReturnsFalse()
1394
+ {
1395
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1396
+ Bounds inner = new(new Vector3(2f, 2f, 0f), new Vector3(5f, 5f, 20f));
1397
+ Assert.IsFalse(outer.FastContains3D(inner));
1398
+ }
1399
+
1400
+ [Test]
1401
+ public void FastContains3DBoundsInnerMinBelowOnXReturnsFalse()
1402
+ {
1403
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1404
+ Bounds inner = new(new Vector3(-5.1f, 0f, 0f), new Vector3(5f, 5f, 5f));
1405
+ Assert.IsFalse(outer.FastContains3D(inner));
1406
+ }
1407
+
1408
+ [Test]
1409
+ public void FastContains3DBoundsInnerMinBelowOnYReturnsFalse()
1410
+ {
1411
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1412
+ Bounds inner = new(new Vector3(0f, -5.1f, 0f), new Vector3(5f, 5f, 5f));
1413
+ Assert.IsFalse(outer.FastContains3D(inner));
1414
+ }
1415
+
1416
+ [Test]
1417
+ public void FastContains3DBoundsInnerMinBelowOnZReturnsFalse()
1418
+ {
1419
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1420
+ Bounds inner = new(new Vector3(0f, 0f, -5.1f), new Vector3(5f, 5f, 5f));
1421
+ Assert.IsFalse(outer.FastContains3D(inner));
1422
+ }
1423
+
1424
+ [Test]
1425
+ public void FastContains3DBoundsInnerBarelyFitsReturnsTrue()
1426
+ {
1427
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1428
+ Bounds inner = new(
1429
+ // Place centered so it's just slightly smaller than outer on all sides
1430
+ new Vector3(0f, 0f, 0f),
1431
+ new Vector3(19.99f, 19.99f, 19.99f)
1432
+ );
1433
+ Assert.IsTrue(outer.FastContains3D(inner));
1434
+ }
1435
+
1436
+ [Test]
1437
+ public void FastContains3DBoundsInnerBarelyDoesNotFitOnXReturnsFalse()
1438
+ {
1439
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1440
+ Bounds inner = new(new Vector3(-10f, -9.99f, -9.99f), new Vector3(20f, 19.99f, 19.99f));
1441
+ Assert.IsFalse(outer.FastContains3D(inner));
1442
+ }
1443
+
1444
+ [Test]
1445
+ public void FastContains3DBoundsInnerBarelyDoesNotFitOnYReturnsFalse()
1446
+ {
1447
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1448
+ Bounds inner = new(new Vector3(-9.99f, -10f, -9.99f), new Vector3(19.99f, 20f, 19.99f));
1449
+ Assert.IsFalse(outer.FastContains3D(inner));
1450
+ }
1451
+
1452
+ [Test]
1453
+ public void FastContains3DBoundsInnerBarelyDoesNotFitOnZReturnsFalse()
1454
+ {
1455
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1456
+ Bounds inner = new(new Vector3(-9.99f, -9.99f, -10f), new Vector3(19.99f, 19.99f, 20f));
1457
+ Assert.IsFalse(outer.FastContains3D(inner));
1458
+ }
1459
+
1460
+ [Test]
1461
+ public void FastContains3DBoundsMixedPositiveNegativeReturnsTrue()
1462
+ {
1463
+ Bounds outer = new(new Vector3(-10f, -10f, -10f), new Vector3(40f, 40f, 40f));
1464
+ Bounds inner = new(
1465
+ // Adjust Z so inner.max.z does not exceed outer.max.z
1466
+ new Vector3(-5f, 0f, 0f),
1467
+ new Vector3(20f, 20f, 20f)
1468
+ );
1469
+ Assert.IsTrue(outer.FastContains3D(inner));
1470
+ }
1471
+
1472
+ [Test]
1473
+ public void FastContains3DBoundsOuterLargerOnlyOnOneAxisReturnsFalse()
1474
+ {
1475
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 5f, 5f));
1476
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(5f, 10f, 5f));
1477
+ Assert.IsFalse(outer.FastContains3D(inner));
1478
+ }
1479
+
1480
+ [Test]
1481
+ public void FastContains3DBoundsInnerSingleAxisSliceReturnsTrue()
1482
+ {
1483
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1484
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 10f, 10f));
1485
+ Assert.IsTrue(outer.FastContains3D(inner));
1486
+ }
1487
+
1488
+ [Test]
1489
+ public void FastContains3DBoundsInnerLineSegmentReturnsTrue()
1490
+ {
1491
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1492
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 10f));
1493
+ Assert.IsTrue(outer.FastContains3D(inner));
1494
+ }
1495
+
1496
+ // FastContainsHalfOpen3D tests
1497
+ [Test]
1498
+ public void FastContainsHalfOpen3DFullyContainedReturnsTrue()
1499
+ {
1500
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(100f, 100f, 100f));
1501
+ // Inner.max must be strictly below outer.max for half-open semantics
1502
+ Bounds inner = new(new Vector3(25f, 25f, 25f), new Vector3(49.99f, 49.99f, 49.99f));
1503
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1504
+ }
1505
+
1506
+ [Test]
1507
+ public void FastContainsHalfOpen3DInnerTouchingOuterMaxReturnsFalse()
1508
+ {
1509
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1510
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1511
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1512
+ }
1513
+
1514
+ [Test]
1515
+ public void FastContainsHalfOpen3DInnerMaxJustBelowOuterMaxReturnsTrue()
1516
+ {
1517
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1518
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(19.99f, 19.99f, 19.99f));
1519
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1520
+ }
1521
+
1522
+ [Test]
1523
+ public void FastContainsHalfOpen3DInnerMinBelowOuterMinReturnsFalse()
1524
+ {
1525
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1526
+ Bounds inner = new(new Vector3(-10.01f, -10f, -10f), new Vector3(15f, 15f, 15f));
1527
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1528
+ }
1529
+
1530
+ [Test]
1531
+ public void FastContainsHalfOpen3DInnerMinAtOuterMinReturnsTrue()
1532
+ {
1533
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1534
+ // Set inner so inner.min == outer.min (-10) and inner.max < outer.max (10)
1535
+ Bounds inner = new(new Vector3(-2.5f, -2.5f, -2.5f), new Vector3(15f, 15f, 15f));
1536
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1537
+ }
1538
+
1539
+ [Test]
1540
+ public void FastContainsHalfOpen3DInnerMaxTouchesOuterMaxOnXReturnsFalse()
1541
+ {
1542
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1543
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 15f, 15f));
1544
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1545
+ }
1546
+
1547
+ [Test]
1548
+ public void FastContainsHalfOpen3DInnerMaxTouchesOuterMaxOnYReturnsFalse()
1549
+ {
1550
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1551
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(15f, 10f, 15f));
1552
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1553
+ }
1554
+
1555
+ [Test]
1556
+ public void FastContainsHalfOpen3DInnerMaxTouchesOuterMaxOnZReturnsFalse()
1557
+ {
1558
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1559
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(15f, 15f, 10f));
1560
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1561
+ }
1562
+
1563
+ [Test]
1564
+ public void FastContainsHalfOpen3DInnerExceedsOuterMaxOnXReturnsFalse()
1565
+ {
1566
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1567
+ Bounds inner = new(new Vector3(0f, 2f, 2f), new Vector3(10.01f, 5f, 5f));
1568
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1569
+ }
1570
+
1571
+ [Test]
1572
+ public void FastContainsHalfOpen3DInnerExceedsOuterMaxOnYReturnsFalse()
1573
+ {
1574
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1575
+ Bounds inner = new(new Vector3(2f, 0f, 2f), new Vector3(5f, 10.01f, 5f));
1576
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1577
+ }
1578
+
1579
+ [Test]
1580
+ public void FastContainsHalfOpen3DInnerExceedsOuterMaxOnZReturnsFalse()
1581
+ {
1582
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1583
+ Bounds inner = new(new Vector3(2f, 2f, 0f), new Vector3(5f, 5f, 10.01f));
1584
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1585
+ }
1586
+
1587
+ [Test]
1588
+ public void FastContainsHalfOpen3DCompletelyOutsideReturnsFalse()
1589
+ {
1590
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1591
+ Bounds inner = new(new Vector3(20f, 20f, 20f), new Vector3(10f, 10f, 10f));
1592
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1593
+ }
1594
+
1595
+ [Test]
1596
+ public void FastContainsHalfOpen3DNegativeCoordinatesFullyContainedReturnsTrue()
1597
+ {
1598
+ Bounds outer = new(new Vector3(-50f, -50f, -50f), new Vector3(100f, 100f, 100f));
1599
+ // Ensure inner.max is strictly below outer.max on all axes
1600
+ Bounds inner = new(new Vector3(-25f, -25f, -25f), new Vector3(49.99f, 49.99f, 49.99f));
1601
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1602
+ }
1603
+
1604
+ [Test]
1605
+ public void FastContainsHalfOpen3DVerySmallInnerReturnsTrue()
1606
+ {
1607
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1608
+ // Place tiny inner strictly inside (not at max)
1609
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f));
1610
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1611
+ }
1612
+
1613
+ [Test]
1614
+ public void FastContainsHalfOpen3DVeryLargeOuterReturnsTrue()
1615
+ {
1616
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10000f, 10000f, 10000f));
1617
+ Bounds inner = new(new Vector3(100f, 100f, 100f), new Vector3(500f, 500f, 500f));
1618
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1619
+ }
1620
+
1621
+ [Test]
1622
+ public void FastContainsHalfOpen3DZeroVolumeInnerReturnsTrue()
1623
+ {
1624
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1625
+ // Degenerate inner point must not be at max; place at center
1626
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f));
1627
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1628
+ }
1629
+
1630
+ [Test]
1631
+ public void FastContainsHalfOpen3DInnerMinBelowOnXReturnsFalse()
1632
+ {
1633
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1634
+ Bounds inner = new(new Vector3(-5.1f, 0f, 0f), new Vector3(5f, 5f, 5f));
1635
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1636
+ }
1637
+
1638
+ [Test]
1639
+ public void FastContainsHalfOpen3DInnerMinBelowOnYReturnsFalse()
1640
+ {
1641
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1642
+ Bounds inner = new(new Vector3(0f, -5.1f, 0f), new Vector3(5f, 5f, 5f));
1643
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1644
+ }
1645
+
1646
+ [Test]
1647
+ public void FastContainsHalfOpen3DInnerMinBelowOnZReturnsFalse()
1648
+ {
1649
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1650
+ Bounds inner = new(new Vector3(0f, 0f, -5.1f), new Vector3(5f, 5f, 5f));
1651
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1652
+ }
1653
+
1654
+ [Test]
1655
+ public void FastContainsHalfOpen3DInnerBarelyFitsWithoutTouchingMaxReturnsTrue()
1656
+ {
1657
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1658
+ // Centered inner just under outer size so max is strictly less
1659
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(19.99f, 19.99f, 19.99f));
1660
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1661
+ }
1662
+
1663
+ [Test]
1664
+ public void FastContainsHalfOpen3DMixedPositiveNegativeReturnsTrue()
1665
+ {
1666
+ Bounds outer = new(new Vector3(-10f, -10f, -10f), new Vector3(40f, 40f, 40f));
1667
+ // Ensure inner.max is strictly below outer.max on each axis
1668
+ Bounds inner = new(new Vector3(-5f, 0f, 5f), new Vector3(29.99f, 19.99f, 9.99f));
1669
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1670
+ }
1671
+
1672
+ [Test]
1673
+ public void FastContainsHalfOpen3DPartiallyOverlappingReturnsFalse()
1674
+ {
1675
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1676
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(20f, 20f, 20f));
1677
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1678
+ }
1679
+
1680
+ [Test]
1681
+ public void FastContainsHalfOpen3DThinSliceNotTouchingMaxReturnsTrue()
1682
+ {
1683
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1684
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 10f, 10f));
1685
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1686
+ }
1687
+
1688
+ [Test]
1689
+ public void FastContainsHalfOpen3DLineSegmentNotTouchingMaxReturnsTrue()
1690
+ {
1691
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1692
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 10f));
1693
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1694
+ }
1695
+
1696
+ [Test]
1697
+ public void FastContainsHalfOpen3DExtremeNegativeCoordinatesReturnsTrue()
1698
+ {
1699
+ Bounds outer = new(
1700
+ new Vector3(-1000f, -1000f, -1000f),
1701
+ new Vector3(2000f, 2000f, 2000f)
1702
+ );
1703
+ // Ensure inner.max is strictly below outer.max (half-open on max)
1704
+ Bounds inner = new(
1705
+ new Vector3(-500f, -500f, -500f),
1706
+ new Vector3(999.99f, 999.99f, 999.99f)
1707
+ );
1708
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1709
+ }
1710
+
1711
+ [Test]
1712
+ public void FastContainsHalfOpen3DInnerAtMinEdgeNotTouchingMaxReturnsTrue()
1713
+ {
1714
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1715
+ // Place inner so inner.min == outer.min, and inner.max < outer.max
1716
+ Bounds inner = new(new Vector3(-5f, -5f, -5f), new Vector3(10f, 10f, 10f));
1717
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1718
+ }
1719
+
1720
+ [Test]
1721
+ public void FastContainsHalfOpen3DInnerMaxExactlyAtOuterMaxOnAllAxesReturnsFalse()
1722
+ {
1723
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1724
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1725
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1726
+ }
1727
+
1728
+ [Test]
1729
+ public void FastContainsHalfOpen3DInnerMaxJustBelowOuterMaxOnAllAxesReturnsTrue()
1730
+ {
1731
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1732
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(9.99f, 9.99f, 9.99f));
1733
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1734
+ }
1735
+
1736
+ [Test]
1737
+ public void FastContainsHalfOpen3DInnerMaxExceedsOuterMaxOnOneAxisReturnsFalse()
1738
+ {
1739
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(10f, 10f, 10f));
1740
+ Bounds inner = new(new Vector3(0f, 0f, 0f), new Vector3(9.99f, 9.99f, 10.01f));
1741
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1742
+ }
1743
+
1744
+ [Test]
1745
+ public void FastContainsHalfOpen3DAsymmetricBoundsReturnsTrue()
1746
+ {
1747
+ Bounds outer = new(new Vector3(-20f, 0f, 10f), new Vector3(100f, 50f, 80f));
1748
+ // Adjust inner sizes so inner.max is strictly below outer.max on Y and Z
1749
+ Bounds inner = new(new Vector3(-10f, 5f, 15f), new Vector3(75f, 39.99f, 69.99f));
1750
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1751
+ }
1752
+
1753
+ [Test]
1754
+ public void FastContainsHalfOpen3DInnerMinAtOuterMinMaxTouchesReturnsFalse()
1755
+ {
1756
+ Bounds outer = new(new Vector3(5f, 5f, 5f), new Vector3(10f, 10f, 10f));
1757
+ Bounds inner = new(new Vector3(-2.5f, -2.5f, -2.5f), new Vector3(10f, 10f, 10f));
1758
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1759
+ }
1760
+
1761
+ [Test]
1762
+ public void FastContainsHalfOpen3DInnerSinglePointNotAtMaxReturnsTrue()
1763
+ {
1764
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1765
+ // Single point bounds at (5,5,5)
1766
+ Bounds inner = new(new Vector3(5f, 5f, 5f), new Vector3(0.0001f, 0.0001f, 0.0001f));
1767
+ Assert.IsTrue(outer.FastContainsHalfOpen3D(inner));
1768
+ }
1769
+
1770
+ [Test]
1771
+ public void FastContainsHalfOpen3DInnerSinglePointAtMaxReturnsFalse()
1772
+ {
1773
+ Bounds outer = new(new Vector3(0f, 0f, 0f), new Vector3(20f, 20f, 20f));
1774
+ // Single point bounds at (10,10,10) which is the max
1775
+ Bounds inner = new(new Vector3(10f, 10f, 10f), new Vector3(0.0001f, 0.0001f, 0.0001f));
1776
+ Assert.IsFalse(outer.FastContainsHalfOpen3D(inner));
1777
+ }
1778
+ }
1779
+ }