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

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 (1500) 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 +75 -0
  7. package/.githooks/pre-push +50 -0
  8. package/.github/dependabot.yml +32 -10
  9. package/.github/scripts/check-markdown-links.ps1 +77 -0
  10. package/.github/scripts/check_markdown_links.py +89 -0
  11. package/.github/scripts/check_markdown_url_encoding.py +74 -0
  12. package/.github/scripts/validate_markdown_links.py +194 -0
  13. package/.github/workflows/csharpier-autofix.yml +152 -0
  14. package/.github/workflows/format-on-demand.yml +305 -0
  15. package/.github/workflows/lint-doc-links.yml +30 -0
  16. package/.github/workflows/markdown-json.yml +45 -0
  17. package/.github/workflows/npm-publish.yml +75 -75
  18. package/.github/workflows/prettier-autofix.yml +195 -0
  19. package/.github/workflows/update-dotnet-tools.yml +80 -0
  20. package/.github/workflows/yaml-format-lint.yml +41 -0
  21. package/.lychee.toml +26 -0
  22. package/.markdownlint.json +21 -0
  23. package/.markdownlint.jsonc +21 -0
  24. package/.markdownlintignore +8 -0
  25. package/.pre-commit-config.yaml +47 -22
  26. package/.prettierignore +22 -0
  27. package/.prettierrc.json +20 -0
  28. package/.yamllint.yaml +31 -0
  29. package/AGENTS.md +56 -0
  30. package/{Third Party Notices.md.meta → AGENTS.md.meta} +7 -7
  31. package/CHANGELOG.md +11 -0
  32. package/CHANGELOG.md.meta +7 -7
  33. package/CONTRIBUTING.md +49 -0
  34. package/CONTRIBUTING.md.meta +7 -0
  35. package/DATA_STRUCTURES.md +324 -0
  36. package/DATA_STRUCTURES.md.meta +7 -0
  37. package/Docs/Images/attribute_resolution.svg +40 -0
  38. package/Docs/Images/attribute_resolution.svg.meta +7 -0
  39. package/Docs/Images/bitset.svg +47 -0
  40. package/Docs/Images/bitset.svg.meta +7 -0
  41. package/Docs/Images/concave_hull.svg +30 -0
  42. package/Docs/Images/concave_hull.svg.meta +7 -0
  43. package/Docs/Images/convex_hull.svg +29 -0
  44. package/Docs/Images/convex_hull.svg.meta +7 -0
  45. package/Docs/Images/cyclic_buffer.svg +37 -0
  46. package/Docs/Images/cyclic_buffer.svg.meta +7 -0
  47. package/Docs/Images/data_distribution_decision.svg +88 -0
  48. package/Docs/Images/data_distribution_decision.svg.meta +7 -0
  49. package/Docs/Images/deque.svg +64 -0
  50. package/Docs/Images/deque.svg.meta +7 -0
  51. package/Docs/Images/deque_queue.svg +107 -0
  52. package/Docs/Images/deque_queue.svg.meta +7 -0
  53. package/Docs/Images/disjoint_set.svg +47 -0
  54. package/Docs/Images/disjoint_set.svg.meta +7 -0
  55. package/Docs/Images/effects_pipeline.svg +59 -0
  56. package/Docs/Images/effects_pipeline.svg.meta +7 -0
  57. package/Docs/Images/geometry_edge_cases.svg +61 -0
  58. package/Docs/Images/geometry_edge_cases.svg.meta +7 -0
  59. package/Docs/Images/heap.svg +56 -0
  60. package/Docs/Images/heap.svg.meta +7 -0
  61. package/Docs/Images/kdtree_2d.svg +38 -0
  62. package/Docs/Images/kdtree_2d.svg.meta +7 -0
  63. package/Docs/Images/kdtree_3d.svg +83 -0
  64. package/Docs/Images/kdtree_3d.svg.meta +7 -0
  65. package/Docs/Images/octree_3d.svg +79 -0
  66. package/Docs/Images/octree_3d.svg.meta +7 -0
  67. package/Docs/Images/polyline_simplify.svg +18 -0
  68. package/Docs/Images/polyline_simplify.svg.meta +7 -0
  69. package/Docs/Images/quadtree_2d.svg +37 -0
  70. package/Docs/Images/quadtree_2d.svg.meta +7 -0
  71. package/Docs/Images/query_boundaries.svg +38 -0
  72. package/Docs/Images/query_boundaries.svg.meta +7 -0
  73. package/Docs/Images/random_generators.svg +105 -0
  74. package/Docs/Images/random_generators.svg.meta +7 -0
  75. package/Docs/Images/reflection_scan.svg +33 -0
  76. package/Docs/Images/reflection_scan.svg.meta +7 -0
  77. package/Docs/Images/relational_wiring.svg +75 -0
  78. package/Docs/Images/relational_wiring.svg.meta +7 -0
  79. package/Docs/Images/rtree_2d.svg +27 -0
  80. package/Docs/Images/rtree_2d.svg.meta +7 -0
  81. package/Docs/Images/rtree_3d.svg +79 -0
  82. package/Docs/Images/rtree_3d.svg.meta +7 -0
  83. package/Docs/Images/serialization_flow.svg +50 -0
  84. package/Docs/Images/serialization_flow.svg.meta +7 -0
  85. package/Docs/Images/singletons_lifecycle.svg +54 -0
  86. package/Docs/Images/singletons_lifecycle.svg.meta +7 -0
  87. package/Docs/Images/sparse_set.svg +54 -0
  88. package/Docs/Images/sparse_set.svg.meta +7 -0
  89. package/Docs/Images/trie.svg +55 -0
  90. package/Docs/Images/trie.svg.meta +7 -0
  91. package/Docs/Images.meta +8 -0
  92. package/Docs.meta +8 -0
  93. package/EDITOR_TOOLS_GUIDE.md +1980 -0
  94. package/EDITOR_TOOLS_GUIDE.md.meta +7 -0
  95. package/EFFECTS_SYSTEM.md +242 -0
  96. package/EFFECTS_SYSTEM.md.meta +7 -0
  97. package/EFFECTS_SYSTEM_TUTORIAL.md +467 -0
  98. package/EFFECTS_SYSTEM_TUTORIAL.md.meta +7 -0
  99. package/Editor/AnimationEventEditor.cs +1570 -874
  100. package/Editor/AnimationEventEditor.cs.meta +11 -11
  101. package/Editor/AssemblyInfo.cs +4 -0
  102. package/Editor/AssemblyInfo.cs.meta +3 -0
  103. package/Editor/AssetProcessors/SpriteLabelProcessor.cs +138 -111
  104. package/Editor/AssetProcessors/SpriteLabelProcessor.cs.meta +2 -2
  105. package/Editor/AssetProcessors.meta +2 -2
  106. package/Editor/Core/Helper/AnimationEventHelpers.cs +230 -0
  107. package/{Runtime/Core/DataStructure/ISpatialTree.cs.meta → Editor/Core/Helper/AnimationEventHelpers.cs.meta} +11 -11
  108. package/Editor/Core/Helper.meta +8 -0
  109. package/Editor/Core.meta +8 -0
  110. package/Editor/CustomDrawers/IntDropdownDrawer.cs +46 -46
  111. package/Editor/CustomDrawers/IntDropdownDrawer.cs.meta +2 -2
  112. package/Editor/CustomDrawers/StringInListeDrawer.cs +135 -135
  113. package/Editor/CustomDrawers/StringInListeDrawer.cs.meta +2 -2
  114. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs +105 -105
  115. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs.meta +2 -2
  116. package/Editor/CustomDrawers.meta +2 -2
  117. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +32 -32
  118. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  119. package/Editor/CustomEditors/PersistentDirectoryGUI.cs +808 -799
  120. package/Editor/CustomEditors/PersistentDirectoryGUI.cs.meta +2 -2
  121. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs +38 -40
  122. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs.meta +2 -2
  123. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs +685 -413
  124. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs.meta +2 -2
  125. package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +155 -0
  126. package/{Runtime/Core/DataStructure/KDTree.cs.meta → Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs.meta} +11 -11
  127. package/Editor/CustomEditors.meta +2 -2
  128. package/Editor/Extensions/SerializedPropertyExtensions.cs +217 -190
  129. package/Editor/Extensions/SerializedPropertyExtensions.cs.meta +2 -2
  130. package/Editor/Extensions/UnityExtensions.cs +50 -26
  131. package/Editor/Extensions/UnityExtensions.cs.meta +2 -2
  132. package/Editor/Extensions.meta +2 -2
  133. package/Editor/FitTextureSizeWindow.cs +809 -332
  134. package/Editor/FitTextureSizeWindow.cs.meta +2 -2
  135. package/Editor/Persistence/MultiFileSelectorPersistenceManager.cs +62 -0
  136. package/{Runtime/Core/DataStructure/QuadTree.cs.meta → Editor/Persistence/MultiFileSelectorPersistenceManager.cs.meta} +11 -11
  137. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs +65 -0
  138. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs.meta +11 -0
  139. package/Editor/Persistence.meta +8 -0
  140. package/Editor/PersistentDirectorySettings.cs +581 -248
  141. package/Editor/PersistentDirectorySettings.cs.meta +2 -2
  142. package/Editor/PrefabChecker.cs +1396 -741
  143. package/Editor/PrefabChecker.cs.meta +11 -11
  144. package/Editor/Sprites/AnimationCopier.cs +1594 -789
  145. package/Editor/Sprites/AnimationCopier.cs.meta +2 -2
  146. package/Editor/Sprites/AnimationCreator.cs +1573 -881
  147. package/Editor/Sprites/AnimationCreator.cs.meta +11 -11
  148. package/Editor/Sprites/AnimationViewerWindow.cs +1670 -1522
  149. package/Editor/Sprites/AnimationViewerWindow.cs.meta +2 -2
  150. package/Editor/Sprites/ScriptableSpriteAtlas.cs +251 -178
  151. package/Editor/Sprites/ScriptableSpriteAtlas.cs.meta +2 -2
  152. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs +1470 -1026
  153. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs.meta +2 -2
  154. package/Editor/Sprites/SpriteCropper.cs +1013 -523
  155. package/Editor/Sprites/SpriteCropper.cs.meta +2 -2
  156. package/Editor/Sprites/SpritePivotAdjustor.cs +605 -265
  157. package/Editor/Sprites/SpritePivotAdjustor.cs.meta +2 -2
  158. package/Editor/Sprites/SpriteSettingsApplier.cs +942 -918
  159. package/Editor/Sprites/SpriteSettingsApplier.cs.meta +2 -2
  160. package/Editor/Sprites/SpriteSettingsApplierAPI.cs +441 -0
  161. package/Editor/Sprites/SpriteSettingsApplierAPI.cs.meta +11 -0
  162. package/Editor/Sprites/SpriteSettingsProfileCollection.cs +12 -0
  163. package/Editor/Sprites/SpriteSettingsProfileCollection.cs.meta +11 -0
  164. package/Editor/Sprites/SpriteSheetAnimationCreator.cs +1586 -1537
  165. package/Editor/Sprites/SpriteSheetAnimationCreator.cs.meta +2 -2
  166. package/Editor/Sprites/TexturePlatformNameHelper.cs +89 -0
  167. package/Editor/Sprites/TexturePlatformNameHelper.cs.meta +11 -0
  168. package/Editor/Sprites/TextureResizerWizard.cs +456 -175
  169. package/Editor/Sprites/TextureResizerWizard.cs.meta +2 -2
  170. package/Editor/Sprites/TextureSettingsApplierAPI.cs +359 -0
  171. package/Editor/Sprites/TextureSettingsApplierAPI.cs.meta +11 -0
  172. package/Editor/Sprites/TextureSettingsApplierWindow.cs +668 -0
  173. package/Editor/Sprites/TextureSettingsApplierWindow.cs.meta +11 -0
  174. package/Editor/Sprites.meta +2 -2
  175. package/Editor/Styles/AnimationViewer.uss +115 -115
  176. package/Editor/Styles/AnimationViewer.uss.meta +2 -2
  177. package/Editor/Styles/AnimationViewer.uxml +56 -56
  178. package/Editor/Styles/AnimationViewer.uxml.meta +2 -2
  179. package/Editor/Styles/SpriteSheetAnimationCreator.uss +10 -0
  180. package/Editor/Styles/SpriteSheetAnimationCreator.uss.meta +11 -0
  181. package/Editor/Styles.meta +2 -2
  182. package/Editor/Tags/AttributeMetadataCacheEditor.cs +46 -0
  183. package/Editor/Tags/AttributeMetadataCacheEditor.cs.meta +11 -0
  184. package/Editor/Tags/AttributeMetadataCacheGenerator.cs +258 -0
  185. package/Editor/Tags/AttributeMetadataCacheGenerator.cs.meta +11 -0
  186. package/Editor/Tags.meta +8 -0
  187. package/Editor/Tools/ImageBlurTool.cs +522 -409
  188. package/Editor/Tools/ImageBlurTool.cs.meta +2 -2
  189. package/Editor/Tools.meta +2 -2
  190. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
  191. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
  192. package/Editor/Utils/EditorUi.cs +228 -0
  193. package/Editor/Utils/EditorUi.cs.meta +11 -0
  194. package/Editor/Utils/EditorUtilities.cs +22 -22
  195. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  196. package/Editor/Utils/ScriptableObjectSingletonCreator.cs +633 -52
  197. package/Editor/Utils/ScriptableObjectSingletonCreator.cs.meta +2 -2
  198. package/Editor/Utils.meta +8 -8
  199. package/Editor/Visuals/EnhancedImageEditor.cs +160 -160
  200. package/Editor/Visuals/EnhancedImageEditor.cs.meta +11 -11
  201. package/Editor/Visuals.meta +2 -2
  202. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +14 -18
  203. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  204. package/Editor.meta +8 -8
  205. package/GETTING_STARTED.md +409 -0
  206. package/GETTING_STARTED.md.meta +7 -0
  207. package/GLOSSARY.md +313 -0
  208. package/GLOSSARY.md.meta +7 -0
  209. package/HULLS.md +45 -0
  210. package/HULLS.md.meta +7 -0
  211. package/INDEX.md +429 -0
  212. package/INDEX.md.meta +7 -0
  213. package/LICENSE +21 -21
  214. package/LICENSE.md +7 -7
  215. package/LICENSE.md.meta +7 -7
  216. package/LICENSE.meta +7 -7
  217. package/MATH_AND_EXTENSIONS.md +316 -0
  218. package/MATH_AND_EXTENSIONS.md.meta +7 -0
  219. package/RANDOM_PERFORMANCE.md +140 -0
  220. package/RANDOM_PERFORMANCE.md.meta +7 -0
  221. package/README.md +1183 -188
  222. package/README.md.meta +7 -7
  223. package/REFLECTION_HELPERS.md +272 -0
  224. package/REFLECTION_HELPERS.md.meta +7 -0
  225. package/RELATIONAL_COMPONENTS.md +552 -0
  226. package/RELATIONAL_COMPONENTS.md.meta +7 -0
  227. package/Runtime/AssemblyInfo.cs +9 -0
  228. package/Runtime/AssemblyInfo.cs.meta +11 -0
  229. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  230. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  231. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +499 -278
  232. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  233. package/Runtime/Binaries/System.IO.Pipelines.dll +0 -0
  234. package/Runtime/Binaries/System.IO.Pipelines.dll.meta +33 -0
  235. package/Runtime/Binaries/System.IO.Pipelines.xml +702 -0
  236. package/Runtime/Binaries/System.IO.Pipelines.xml.meta +7 -0
  237. package/Runtime/Binaries/System.Text.Encodings.Web.dll +0 -0
  238. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  239. package/Runtime/Binaries/System.Text.Encodings.Web.xml +1084 -1079
  240. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  241. package/Runtime/Binaries/System.Text.Json.dll +0 -0
  242. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  243. package/Runtime/Binaries/System.Text.Json.xml +10217 -8116
  244. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  245. package/Runtime/Binaries.meta +8 -8
  246. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +10 -138
  247. package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -11
  248. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs +841 -0
  249. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs.meta +11 -0
  250. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +284 -226
  251. package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -11
  252. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
  253. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs.meta +11 -11
  254. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs +15 -15
  255. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs.meta +2 -2
  256. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs +36 -0
  257. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs.meta +11 -0
  258. package/Runtime/Core/Attributes/IntDropdownAttribute.cs +14 -14
  259. package/Runtime/Core/Attributes/IntDropdownAttribute.cs.meta +2 -2
  260. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  261. package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -11
  262. package/Runtime/Core/Attributes/NotNullAttribute.cs +30 -32
  263. package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -11
  264. package/Runtime/Core/Attributes/ParentComponentAttribute.cs +376 -0
  265. package/Runtime/Core/Attributes/{ParentComponent.cs.meta → ParentComponentAttribute.cs.meta} +11 -11
  266. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +152 -0
  267. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs.meta +11 -0
  268. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +61 -14
  269. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -11
  270. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs +331 -0
  271. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs.meta +11 -0
  272. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs +15 -15
  273. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs.meta +2 -2
  274. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +264 -137
  275. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  276. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +115 -106
  277. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  278. package/Runtime/Core/Attributes/ValueHelpers.cs +10 -0
  279. package/Runtime/Core/Attributes/ValueHelpers.cs.meta +3 -0
  280. package/Runtime/Core/Attributes/WShowIfAttribute.cs +24 -24
  281. package/Runtime/Core/Attributes/WShowIfAttribute.cs.meta +2 -2
  282. package/Runtime/Core/Attributes.meta +8 -8
  283. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +192 -92
  284. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -11
  285. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +268 -185
  286. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -11
  287. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +360 -305
  288. package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -11
  289. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +146 -80
  290. package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -11
  291. package/Runtime/Core/DataStructure/Adapters.meta +8 -8
  292. package/Runtime/Core/DataStructure/BitSet.cs +626 -0
  293. package/Runtime/Core/DataStructure/BitSet.cs.meta +11 -0
  294. package/Runtime/Core/DataStructure/BoundingBox3D.cs +405 -0
  295. package/Runtime/Core/DataStructure/BoundingBox3D.cs.meta +11 -0
  296. package/Runtime/Core/DataStructure/Circle.cs +203 -50
  297. package/Runtime/Core/DataStructure/Circle.cs.meta +11 -11
  298. package/Runtime/Core/DataStructure/CyclicBuffer.cs +488 -266
  299. package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -11
  300. package/Runtime/Core/DataStructure/Deque.cs +561 -0
  301. package/Runtime/Core/DataStructure/Deque.cs.meta +11 -0
  302. package/Runtime/Core/DataStructure/DisjointSet.cs +483 -0
  303. package/Runtime/Core/DataStructure/DisjointSet.cs.meta +11 -0
  304. package/Runtime/Core/DataStructure/Heap.cs +514 -0
  305. package/Runtime/Core/DataStructure/Heap.cs.meta +11 -0
  306. package/Runtime/Core/DataStructure/{ISpatialTree.cs → ISpatialTree2D.cs} +25 -21
  307. package/Runtime/Core/DataStructure/ISpatialTree2D.cs.meta +11 -0
  308. package/Runtime/Core/DataStructure/ISpatialTree3D.cs +33 -0
  309. package/Runtime/Core/DataStructure/ISpatialTree3D.cs.meta +11 -0
  310. package/Runtime/Core/DataStructure/ImmutableBitSet.cs +398 -0
  311. package/Runtime/Core/DataStructure/ImmutableBitSet.cs.meta +3 -0
  312. package/Runtime/Core/DataStructure/KDTree2D.cs +852 -0
  313. package/Runtime/Core/DataStructure/KDTree2D.cs.meta +11 -0
  314. package/Runtime/Core/DataStructure/KDTree3D.cs +911 -0
  315. package/Runtime/Core/DataStructure/KDTree3D.cs.meta +11 -0
  316. package/Runtime/Core/DataStructure/OctTree3D.cs +983 -0
  317. package/Runtime/Core/DataStructure/OctTree3D.cs.meta +11 -0
  318. package/Runtime/Core/DataStructure/PriorityQueue.cs +194 -0
  319. package/Runtime/Core/DataStructure/PriorityQueue.cs.meta +11 -0
  320. package/Runtime/Core/DataStructure/QuadTree2D.cs +722 -0
  321. package/Runtime/Core/DataStructure/QuadTree2D.cs.meta +11 -0
  322. package/Runtime/Core/DataStructure/RTree2D.cs +704 -0
  323. package/Runtime/Core/DataStructure/{RTree.cs.meta → RTree2D.cs.meta} +11 -11
  324. package/Runtime/Core/DataStructure/RTree3D.cs +775 -0
  325. package/Runtime/Core/DataStructure/RTree3D.cs.meta +11 -0
  326. package/Runtime/Core/DataStructure/SparseSet.cs +597 -0
  327. package/Runtime/Core/DataStructure/SparseSet.cs.meta +11 -0
  328. package/Runtime/Core/DataStructure/SpatialHash2D.cs +312 -0
  329. package/Runtime/Core/DataStructure/SpatialHash2D.cs.meta +3 -0
  330. package/Runtime/Core/DataStructure/SpatialHash3D.cs +341 -0
  331. package/Runtime/Core/DataStructure/SpatialHash3D.cs.meta +11 -0
  332. package/Runtime/Core/DataStructure/Sphere.cs +264 -0
  333. package/Runtime/Core/DataStructure/Sphere.cs.meta +11 -0
  334. package/Runtime/Core/DataStructure/StringWrapper.cs +115 -91
  335. package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -11
  336. package/Runtime/Core/DataStructure/TimedCache.cs +88 -66
  337. package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -11
  338. package/Runtime/Core/DataStructure/Trie.cs +660 -359
  339. package/Runtime/Core/DataStructure/Trie.cs.meta +2 -2
  340. package/Runtime/Core/DataStructure.meta +8 -8
  341. package/Runtime/Core/Extension/AnimatorExtensions.cs +40 -25
  342. package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -11
  343. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +404 -110
  344. package/Runtime/Core/Extension/AsyncOperationExtensions.cs.meta +2 -2
  345. package/Runtime/Core/Extension/CircleExtensions.cs +125 -25
  346. package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -11
  347. package/Runtime/Core/Extension/ColorExtensions.cs +983 -644
  348. package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -11
  349. package/Runtime/Core/Extension/DictionaryExtensions.cs +606 -299
  350. package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -11
  351. package/Runtime/Core/Extension/DirectionExtensions.cs +377 -213
  352. package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -11
  353. package/Runtime/Core/Extension/EnumExtensions.cs +535 -137
  354. package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
  355. package/Runtime/Core/Extension/IEnumerableExtensions.cs +341 -124
  356. package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -11
  357. package/Runtime/Core/Extension/IListExtensions.cs +767 -248
  358. package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -11
  359. package/Runtime/Core/Extension/IReadonlyListExtensions.cs +687 -37
  360. package/Runtime/Core/Extension/IReadonlyListExtensions.cs.meta +2 -2
  361. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs +292 -0
  362. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs.meta +3 -0
  363. package/Runtime/Core/Extension/RandomExtensions.cs +1006 -109
  364. package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -11
  365. package/Runtime/Core/Extension/StringExtensions.cs +1635 -239
  366. package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -11
  367. package/Runtime/Core/Extension/UnityExtensions.cs +4555 -1689
  368. package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -11
  369. package/Runtime/Core/Extension/WallstopStudiosLogger.cs +287 -245
  370. package/Runtime/Core/Extension/WallstopStudiosLogger.cs.meta +11 -11
  371. package/Runtime/Core/Extension.meta +8 -8
  372. package/Runtime/Core/Helper/ArrayConverter.cs +73 -39
  373. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  374. package/Runtime/Core/Helper/AssignUtilities.cs +33 -14
  375. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  376. package/Runtime/Core/Helper/DirectoryHelper.cs +210 -196
  377. package/Runtime/Core/Helper/DirectoryHelper.cs.meta +2 -2
  378. package/Runtime/Core/Helper/Enumerables.cs +51 -17
  379. package/Runtime/Core/Helper/Enumerables.cs.meta +11 -11
  380. package/Runtime/Core/Helper/FileHelper.cs +97 -77
  381. package/Runtime/Core/Helper/FileHelper.cs.meta +2 -2
  382. package/Runtime/Core/Helper/FormattingHelpers.cs +49 -38
  383. package/Runtime/Core/Helper/FormattingHelpers.cs.meta +2 -2
  384. package/Runtime/Core/Helper/FuncBasedComparer.cs +29 -0
  385. package/Runtime/Core/Helper/FuncBasedComparer.cs.meta +3 -0
  386. package/Runtime/Core/Helper/Geometry.cs +65 -43
  387. package/Runtime/Core/Helper/Geometry.cs.meta +11 -11
  388. package/Runtime/Core/Helper/Helpers.cs +1271 -831
  389. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  390. package/Runtime/Core/Helper/IterationHelpers.cs +83 -32
  391. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  392. package/Runtime/Core/Helper/LifetimeHelpers.cs +20 -13
  393. package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -11
  394. package/Runtime/Core/Helper/LineHelper.cs +259 -194
  395. package/Runtime/Core/Helper/LineHelper.cs.meta +2 -2
  396. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs +549 -539
  397. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs.meta +2 -2
  398. package/Runtime/Core/Helper/Logging.meta +2 -2
  399. package/Runtime/Core/Helper/Objects.cs +477 -769
  400. package/Runtime/Core/Helper/Objects.cs.meta +11 -11
  401. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  402. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  403. package/Runtime/Core/Helper/Partials/MathHelpers.cs +45 -30
  404. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  405. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +509 -400
  406. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  407. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +393 -377
  408. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  409. package/Runtime/Core/Helper/Partials.meta +2 -2
  410. package/Runtime/Core/Helper/PathHelper.cs +42 -15
  411. package/Runtime/Core/Helper/PathHelper.cs.meta +2 -2
  412. package/Runtime/Core/Helper/ReflectionHelpers.cs +5298 -1963
  413. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  414. package/Runtime/Core/Helper/ReverseComparer.cs +33 -0
  415. package/Runtime/Core/Helper/ReverseComparer.cs.meta +3 -0
  416. package/Runtime/Core/Helper/SceneHelper.cs +251 -224
  417. package/Runtime/Core/Helper/SceneHelper.cs.meta +2 -2
  418. package/Runtime/Core/Helper/SpriteHelpers.cs +52 -41
  419. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  420. package/Runtime/Core/Helper/StringInList.cs +61 -35
  421. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  422. package/Runtime/Core/Helper/TestAssemblyHelper.cs +134 -0
  423. package/Runtime/Core/Helper/TestAssemblyHelper.cs.meta +11 -0
  424. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +144 -82
  425. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs.meta +2 -2
  426. package/Runtime/Core/Helper/WallMath.cs +672 -166
  427. package/Runtime/Core/Helper/WallMath.cs.meta +11 -11
  428. package/Runtime/Core/Helper.meta +8 -8
  429. package/Runtime/Core/Math/Line2D.cs +263 -0
  430. package/Runtime/Core/Math/Line2D.cs.meta +11 -0
  431. package/Runtime/Core/Math/Line3D.cs +452 -0
  432. package/Runtime/Core/Math/Line3D.cs.meta +11 -0
  433. package/Runtime/Core/Math/Parabola.cs +241 -47
  434. package/Runtime/Core/Math/Parabola.cs.meta +11 -11
  435. package/Runtime/Core/Math/PointPolygonCheck.cs +175 -36
  436. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  437. package/Runtime/Core/Math/Range.cs +157 -92
  438. package/Runtime/Core/Math/Range.cs.meta +11 -11
  439. package/Runtime/Core/Math.meta +8 -8
  440. package/Runtime/Core/Model/Direction.cs +25 -43
  441. package/Runtime/Core/Model/Direction.cs.meta +11 -11
  442. package/Runtime/Core/Model.meta +8 -8
  443. package/Runtime/Core/OneOf/FastOneOf.cs +252 -152
  444. package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -11
  445. package/Runtime/Core/OneOf/FastOneOf2.cs +198 -0
  446. package/Runtime/Core/OneOf/FastOneOf2.cs.meta +11 -0
  447. package/Runtime/Core/OneOf/FastOneOf4.cs +324 -0
  448. package/Runtime/Core/OneOf/FastOneOf4.cs.meta +11 -0
  449. package/Runtime/Core/OneOf/None.cs +30 -4
  450. package/Runtime/Core/OneOf/None.cs.meta +11 -11
  451. package/Runtime/Core/OneOf.meta +8 -8
  452. package/Runtime/Core/Random/AbstractRandom.cs +1318 -655
  453. package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -11
  454. package/Runtime/Core/Random/DotNetRandom.cs +118 -54
  455. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  456. package/Runtime/Core/Random/IRandom.cs +203 -161
  457. package/Runtime/Core/Random/IRandom.cs.meta +11 -11
  458. package/Runtime/Core/Random/IllusionFlow.cs +171 -107
  459. package/Runtime/Core/Random/IllusionFlow.cs.meta +2 -2
  460. package/Runtime/Core/Random/LinearCongruentialGenerator.cs +90 -49
  461. package/Runtime/Core/Random/LinearCongruentialGenerator.cs.meta +2 -2
  462. package/Runtime/Core/Random/NativePcgRandom.cs +139 -97
  463. package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -11
  464. package/Runtime/Core/Random/PRNG.cs +21 -7
  465. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  466. package/Runtime/Core/Random/PcgRandom.cs +243 -149
  467. package/Runtime/Core/Random/PcgRandom.cs.meta +11 -11
  468. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  469. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  470. package/Runtime/Core/Random/RandomComparer.cs +34 -0
  471. package/Runtime/Core/Random/RandomComparer.cs.meta +3 -0
  472. package/Runtime/Core/Random/RandomState.cs +206 -131
  473. package/Runtime/Core/Random/RandomState.cs.meta +11 -11
  474. package/Runtime/Core/Random/RandomUtilities.cs +55 -26
  475. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  476. package/Runtime/Core/Random/RomuDuo.cs +171 -116
  477. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  478. package/Runtime/Core/Random/SplitMix64.cs +134 -94
  479. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  480. package/Runtime/Core/Random/SquirrelRandom.cs +127 -84
  481. package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -11
  482. package/Runtime/Core/Random/SystemRandom.cs +203 -162
  483. package/Runtime/Core/Random/SystemRandom.cs.meta +11 -11
  484. package/Runtime/Core/Random/ThreadLocalRandom.cs +25 -12
  485. package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -11
  486. package/Runtime/Core/Random/UnityRandom.cs +109 -57
  487. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  488. package/Runtime/Core/Random/WyRandom.cs +158 -121
  489. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  490. package/Runtime/Core/Random/XorShiftRandom.cs +106 -52
  491. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  492. package/Runtime/Core/Random/XoroShiroRandom.cs +184 -119
  493. package/Runtime/Core/Random/XoroShiroRandom.cs.meta +2 -2
  494. package/Runtime/Core/Random.meta +8 -8
  495. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs +248 -0
  496. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs.meta +11 -0
  497. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs +119 -0
  498. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs.meta +11 -0
  499. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs +74 -0
  500. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs.meta +11 -0
  501. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs +132 -0
  502. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs.meta +11 -0
  503. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs +135 -0
  504. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs.meta +11 -0
  505. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs +98 -0
  506. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs.meta +11 -0
  507. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs +123 -0
  508. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs.meta +11 -0
  509. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
  510. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs.meta +2 -2
  511. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs +112 -0
  512. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs.meta +11 -0
  513. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs +62 -0
  514. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs.meta +11 -0
  515. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs +72 -0
  516. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs.meta +11 -0
  517. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs +80 -0
  518. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs.meta +11 -0
  519. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +44 -36
  520. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs.meta +2 -2
  521. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs +245 -0
  522. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs.meta +11 -0
  523. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs +92 -0
  524. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs.meta +11 -0
  525. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs +119 -0
  526. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs.meta +11 -0
  527. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs +72 -0
  528. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs.meta +11 -0
  529. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs +95 -0
  530. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs.meta +11 -0
  531. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +237 -218
  532. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs.meta +2 -2
  533. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs +142 -0
  534. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs.meta +11 -0
  535. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs +135 -0
  536. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs.meta +11 -0
  537. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs +79 -0
  538. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs.meta +11 -0
  539. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs +76 -0
  540. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs.meta +11 -0
  541. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs +88 -0
  542. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs.meta +11 -0
  543. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs +106 -0
  544. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs.meta +11 -0
  545. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs +71 -0
  546. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs.meta +11 -0
  547. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs +80 -0
  548. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs.meta +11 -0
  549. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs +76 -0
  550. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs.meta +11 -0
  551. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs +115 -0
  552. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs.meta +11 -0
  553. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs +84 -0
  554. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs.meta +11 -0
  555. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs +88 -0
  556. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs.meta +11 -0
  557. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs +87 -0
  558. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs.meta +11 -0
  559. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs +264 -0
  560. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs.meta +11 -0
  561. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +158 -0
  562. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs.meta +11 -0
  563. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs +103 -0
  564. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs.meta +11 -0
  565. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs +121 -0
  566. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs.meta +11 -0
  567. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs +54 -0
  568. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs.meta +11 -0
  569. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +30 -28
  570. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs.meta +2 -2
  571. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +72 -74
  572. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -11
  573. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs +72 -0
  574. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs.meta +11 -0
  575. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +80 -81
  576. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -11
  577. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs +80 -0
  578. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs.meta +11 -0
  579. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
  580. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs.meta +2 -2
  581. package/Runtime/Core/Serialization/JsonConverters.meta +8 -8
  582. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +383 -0
  583. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs.meta +11 -0
  584. package/Runtime/Core/Serialization/Serializer.cs +2121 -195
  585. package/Runtime/Core/Serialization/Serializer.cs.meta +11 -11
  586. package/Runtime/Core/Serialization.meta +8 -8
  587. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +228 -228
  588. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -11
  589. package/Runtime/Core/Threading.meta +8 -8
  590. package/Runtime/Core.meta +8 -8
  591. package/Runtime/Integrations/VContainer/AssemblyInfo.cs +9 -0
  592. package/Runtime/Integrations/VContainer/AssemblyInfo.cs.meta +3 -0
  593. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +281 -0
  594. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs.meta +11 -0
  595. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +189 -0
  596. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs.meta +11 -0
  597. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +90 -0
  598. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs.meta +11 -0
  599. package/Runtime/Integrations/VContainer/RelationalObjectPools.cs +114 -0
  600. package/Runtime/Integrations/VContainer/RelationalObjectPools.cs.meta +11 -0
  601. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +95 -0
  602. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs.meta +11 -0
  603. package/Runtime/Integrations/VContainer/RelationalSceneLoadListener.cs +241 -0
  604. package/Runtime/Integrations/VContainer/RelationalSceneLoadListener.cs.meta +11 -0
  605. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef +30 -0
  606. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef.meta +7 -0
  607. package/Runtime/Integrations/VContainer.meta +8 -0
  608. package/Runtime/Integrations/Zenject/AssemblyInfo.cs +9 -0
  609. package/Runtime/Integrations/Zenject/AssemblyInfo.cs.meta +3 -0
  610. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +247 -0
  611. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs.meta +11 -0
  612. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +182 -0
  613. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs.meta +11 -0
  614. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +94 -0
  615. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs.meta +11 -0
  616. package/Runtime/Integrations/Zenject/RelationalMemoryPools.cs +44 -0
  617. package/Runtime/Integrations/Zenject/RelationalMemoryPools.cs.meta +11 -0
  618. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +93 -0
  619. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs.meta +11 -0
  620. package/Runtime/Integrations/Zenject/RelationalSceneLoadListener.cs +243 -0
  621. package/Runtime/Integrations/Zenject/RelationalSceneLoadListener.cs.meta +11 -0
  622. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef +30 -0
  623. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef.meta +7 -0
  624. package/Runtime/Integrations/Zenject.meta +8 -0
  625. package/Runtime/Integrations.meta +8 -0
  626. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  627. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  628. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  629. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  630. package/Runtime/Protobuf-Net.meta +8 -8
  631. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs +11 -0
  632. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs.meta +11 -0
  633. package/Runtime/Tags/Attribute.cs +399 -205
  634. package/Runtime/Tags/Attribute.cs.meta +2 -2
  635. package/Runtime/Tags/AttributeEffect.cs +372 -281
  636. package/Runtime/Tags/AttributeEffect.cs.meta +2 -2
  637. package/Runtime/Tags/AttributeMetadataCache.cs +500 -0
  638. package/Runtime/Tags/AttributeMetadataCache.cs.meta +11 -0
  639. package/Runtime/Tags/AttributeMetadataFilters.cs +108 -0
  640. package/Runtime/Tags/AttributeMetadataFilters.cs.meta +11 -0
  641. package/Runtime/Tags/AttributeModification.cs +132 -48
  642. package/Runtime/Tags/AttributeModification.cs.meta +2 -2
  643. package/Runtime/Tags/AttributeUtilities.cs +376 -209
  644. package/Runtime/Tags/AttributeUtilities.cs.meta +2 -2
  645. package/Runtime/Tags/AttributesComponent.cs +237 -163
  646. package/Runtime/Tags/AttributesComponent.cs.meta +2 -2
  647. package/Runtime/Tags/CollisionSenses.cs +117 -91
  648. package/Runtime/Tags/CollisionSenses.cs.meta +2 -2
  649. package/Runtime/Tags/CosmeticEffectComponent.cs +112 -50
  650. package/Runtime/Tags/CosmeticEffectComponent.cs.meta +2 -2
  651. package/Runtime/Tags/CosmeticEffectData.cs +109 -63
  652. package/Runtime/Tags/CosmeticEffectData.cs.meta +2 -2
  653. package/Runtime/Tags/EffectHandle.cs +150 -65
  654. package/Runtime/Tags/EffectHandle.cs.meta +2 -2
  655. package/Runtime/Tags/EffectHandler.cs +470 -393
  656. package/Runtime/Tags/EffectHandler.cs.meta +2 -2
  657. package/Runtime/Tags/ModificationAction.cs +60 -9
  658. package/Runtime/Tags/ModificationAction.cs.meta +2 -2
  659. package/Runtime/Tags/ModifierDurationType.cs +71 -13
  660. package/Runtime/Tags/ModifierDurationType.cs.meta +2 -2
  661. package/Runtime/Tags/TagHandler.cs +373 -158
  662. package/Runtime/Tags/TagHandler.cs.meta +2 -2
  663. package/Runtime/Tags.meta +2 -2
  664. package/Runtime/Utils/AnimationEventEqualityComparer.cs +198 -161
  665. package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -11
  666. package/Runtime/Utils/AnimatorEnumStateMachine.cs +110 -88
  667. package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -11
  668. package/Runtime/Utils/Ascii85.cs +132 -115
  669. package/Runtime/Utils/Ascii85.cs.meta +2 -2
  670. package/Runtime/Utils/Buffers.cs +1151 -550
  671. package/Runtime/Utils/Buffers.cs.meta +11 -11
  672. package/Runtime/Utils/CenterPointOffset.cs +35 -30
  673. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  674. package/Runtime/Utils/ChildSpawner.cs +250 -157
  675. package/Runtime/Utils/ChildSpawner.cs.meta +2 -2
  676. package/Runtime/Utils/CircleLineRenderer.cs +142 -142
  677. package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -11
  678. package/Runtime/Utils/CollisionProxy.cs +48 -48
  679. package/Runtime/Utils/CollisionProxy.cs.meta +2 -2
  680. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  681. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  682. package/Runtime/Utils/DeferredDisposalResult.cs +20 -23
  683. package/Runtime/Utils/DeferredDisposalResult.cs.meta +2 -2
  684. package/Runtime/Utils/LZMA.cs +276 -53
  685. package/Runtime/Utils/LZMA.cs.meta +2 -2
  686. package/Runtime/Utils/MatchColliderToSprite.cs +104 -104
  687. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  688. package/Runtime/Utils/MatchTransform.cs +99 -82
  689. package/Runtime/Utils/MatchTransform.cs.meta +2 -2
  690. package/Runtime/Utils/Oscillator.cs +27 -27
  691. package/Runtime/Utils/Oscillator.cs.meta +11 -11
  692. package/Runtime/Utils/PolygonCollider2DOptimizer.cs +104 -83
  693. package/Runtime/Utils/PolygonCollider2DOptimizer.cs.meta +2 -2
  694. package/Runtime/Utils/RuntimeSingleton.cs +139 -89
  695. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  696. package/Runtime/Utils/ScriptableObjectSingleton.cs +225 -85
  697. package/Runtime/Utils/ScriptableObjectSingleton.cs.meta +2 -2
  698. package/Runtime/Utils/SerializedStringComparer.cs +107 -107
  699. package/Runtime/Utils/SerializedStringComparer.cs.meta +2 -2
  700. package/Runtime/Utils/SetTextureImportData.cs +71 -69
  701. package/Runtime/Utils/SetTextureImportData.cs.meta +11 -11
  702. package/Runtime/Utils/SevenZip/Common/CRC.cs +70 -70
  703. package/Runtime/Utils/SevenZip/Common/CRC.cs.meta +11 -11
  704. package/Runtime/Utils/SevenZip/Common/InBuffer.cs +84 -84
  705. package/Runtime/Utils/SevenZip/Common/InBuffer.cs.meta +11 -11
  706. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs +70 -70
  707. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs.meta +11 -11
  708. package/Runtime/Utils/SevenZip/Common.meta +2 -2
  709. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs +28 -28
  710. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs.meta +11 -11
  711. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs +454 -454
  712. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs.meta +11 -11
  713. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs +179 -179
  714. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs.meta +11 -11
  715. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs +137 -137
  716. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs.meta +11 -11
  717. package/Runtime/Utils/SevenZip/Compress/LZ.meta +8 -8
  718. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs +110 -110
  719. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs.meta +11 -11
  720. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs +525 -527
  721. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs.meta +11 -11
  722. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs +1891 -1904
  723. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs.meta +11 -11
  724. package/Runtime/Utils/SevenZip/Compress/LZMA.meta +8 -8
  725. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs +242 -242
  726. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs.meta +11 -11
  727. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs +146 -149
  728. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs.meta +11 -11
  729. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs +177 -177
  730. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs.meta +11 -11
  731. package/Runtime/Utils/SevenZip/Compress/RangeCoder.meta +8 -8
  732. package/Runtime/Utils/SevenZip/Compress.meta +8 -8
  733. package/Runtime/Utils/SevenZip/ICoder.cs +177 -177
  734. package/Runtime/Utils/SevenZip/ICoder.cs.meta +11 -11
  735. package/Runtime/Utils/SevenZip.meta +2 -2
  736. package/Runtime/Utils/SpriteRendererMetadata.cs +346 -370
  737. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  738. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  739. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  740. package/Runtime/Utils/StartTracker.cs +15 -15
  741. package/Runtime/Utils/StartTracker.cs.meta +2 -2
  742. package/Runtime/Utils/TextureScale.cs +364 -179
  743. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  744. package/Runtime/Utils/TypeNameSorter.cs +17 -17
  745. package/Runtime/Utils/TypeNameSorter.cs.meta +2 -2
  746. package/Runtime/Utils/UnityObjectNameComparer.cs +89 -89
  747. package/Runtime/Utils/UnityObjectNameComparer.cs.meta +2 -2
  748. package/Runtime/Utils.meta +8 -8
  749. package/Runtime/Visuals/AnimatedSpriteLayer.cs +217 -130
  750. package/Runtime/Visuals/AnimatedSpriteLayer.cs.meta +2 -2
  751. package/Runtime/Visuals/UGUI/EnhancedImage.cs +224 -85
  752. package/Runtime/Visuals/UGUI/EnhancedImage.cs.meta +2 -2
  753. package/Runtime/Visuals/UGUI.meta +2 -2
  754. package/Runtime/Visuals/UIToolkit/LayeredImage.cs +784 -484
  755. package/Runtime/Visuals/UIToolkit/LayeredImage.cs.meta +2 -2
  756. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs +945 -322
  757. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs.meta +2 -2
  758. package/Runtime/Visuals/UIToolkit.meta +2 -2
  759. package/Runtime/Visuals.meta +2 -2
  760. package/Runtime/WallstopStudios.UnityHelpers.asmdef +22 -14
  761. package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -7
  762. package/Runtime.meta +8 -8
  763. package/SERIALIZATION.md +663 -0
  764. package/SERIALIZATION.md.meta +7 -0
  765. package/SINGLETONS.md +427 -0
  766. package/SINGLETONS.md.meta +7 -0
  767. package/SPATIAL_TREES_2D_GUIDE.md +261 -0
  768. package/SPATIAL_TREES_2D_GUIDE.md.meta +7 -0
  769. package/SPATIAL_TREES_3D_GUIDE.md +214 -0
  770. package/SPATIAL_TREES_3D_GUIDE.md.meta +7 -0
  771. package/SPATIAL_TREE_2D_PERFORMANCE.md +241 -0
  772. package/SPATIAL_TREE_2D_PERFORMANCE.md.meta +7 -0
  773. package/SPATIAL_TREE_3D_PERFORMANCE.md +243 -0
  774. package/SPATIAL_TREE_3D_PERFORMANCE.md.meta +7 -0
  775. package/SPATIAL_TREE_SEMANTICS.md +106 -0
  776. package/SPATIAL_TREE_SEMANTICS.md.meta +7 -0
  777. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab +77 -0
  778. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab.meta +8 -0
  779. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab +47 -0
  780. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab.meta +8 -0
  781. package/Samples~/DI - VContainer/Prefabs.meta +9 -0
  782. package/Samples~/DI - VContainer/README.md +515 -0
  783. package/Samples~/DI - VContainer/README.md.meta +8 -0
  784. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity +120 -0
  785. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity.meta +8 -0
  786. package/Samples~/DI - VContainer/Scenes.meta +9 -0
  787. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +42 -0
  788. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs.meta +12 -0
  789. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +24 -0
  790. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs.meta +12 -0
  791. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef +37 -0
  792. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef.meta +8 -0
  793. package/Samples~/DI - VContainer/Scripts/Spawner.cs +130 -0
  794. package/Samples~/DI - VContainer/Scripts/Spawner.cs.meta +12 -0
  795. package/Samples~/DI - VContainer/Scripts.meta +9 -0
  796. package/Samples~/DI - VContainer.meta +9 -0
  797. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab +77 -0
  798. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab.meta +8 -0
  799. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab +47 -0
  800. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab.meta +8 -0
  801. package/Samples~/DI - Zenject/Prefabs.meta +9 -0
  802. package/Samples~/DI - Zenject/README.md +553 -0
  803. package/Samples~/DI - Zenject/README.md.meta +7 -0
  804. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity +164 -0
  805. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity.meta +8 -0
  806. package/Samples~/DI - Zenject/Scenes.meta +9 -0
  807. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +22 -0
  808. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs.meta +12 -0
  809. package/Samples~/DI - Zenject/Scripts/RelationalConsumerPool.cs +37 -0
  810. package/Samples~/DI - Zenject/Scripts/RelationalConsumerPool.cs.meta +12 -0
  811. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef +36 -0
  812. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef.meta +8 -0
  813. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs +47 -0
  814. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs.meta +12 -0
  815. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +91 -0
  816. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs.meta +12 -0
  817. package/Samples~/DI - Zenject/Scripts.meta +9 -0
  818. package/Samples~/DI - Zenject.meta +9 -0
  819. package/Samples~/Random - PRNG/README.md +13 -0
  820. package/Samples~/Random - PRNG/README.md.meta +8 -0
  821. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs +28 -0
  822. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs.meta +12 -0
  823. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef +17 -0
  824. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef.meta +8 -0
  825. package/Samples~/Random - PRNG/Scripts.meta +9 -0
  826. package/Samples~/Random - PRNG.meta +9 -0
  827. package/Samples~/Relational Components - Basic/README.md +21 -0
  828. package/Samples~/Relational Components - Basic/README.md.meta +8 -0
  829. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs +37 -0
  830. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs.meta +12 -0
  831. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef +17 -0
  832. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef.meta +8 -0
  833. package/Samples~/Relational Components - Basic/Scripts.meta +9 -0
  834. package/Samples~/Relational Components - Basic.meta +9 -0
  835. package/Samples~/Serialization - JSON/README.md +14 -0
  836. package/Samples~/Serialization - JSON/README.md.meta +8 -0
  837. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs +50 -0
  838. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs.meta +12 -0
  839. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef +17 -0
  840. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef.meta +8 -0
  841. package/Samples~/Serialization - JSON/Scripts.meta +9 -0
  842. package/Samples~/Serialization - JSON.meta +9 -0
  843. package/Samples~/Spatial Structures - 2D and 3D/README.md +14 -0
  844. package/Samples~/Spatial Structures - 2D and 3D/README.md.meta +8 -0
  845. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef +17 -0
  846. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef.meta +8 -0
  847. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs +62 -0
  848. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs.meta +12 -0
  849. package/Samples~/Spatial Structures - 2D and 3D/Scripts.meta +9 -0
  850. package/Samples~/Spatial Structures - 2D and 3D.meta +9 -0
  851. package/Samples~/UGUI - EnhancedImage/README.md +13 -0
  852. package/Samples~/UGUI - EnhancedImage/README.md.meta +8 -0
  853. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs +36 -0
  854. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs.meta +12 -0
  855. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef +17 -0
  856. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef.meta +8 -0
  857. package/Samples~/UGUI - EnhancedImage/Scripts.meta +9 -0
  858. package/Samples~/UGUI - EnhancedImage.meta +9 -0
  859. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +13 -0
  860. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md.meta +8 -0
  861. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs +45 -0
  862. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs.meta +12 -0
  863. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef +19 -0
  864. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef.meta +8 -0
  865. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor.meta +9 -0
  866. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts.meta +9 -0
  867. package/Samples~/UI Toolkit - MultiFile Selector (Editor).meta +9 -0
  868. package/Shaders/Materials/BackgroundMask-Material.mat +59 -59
  869. package/Shaders/Materials/BackgroundMask-Material.mat.meta +8 -8
  870. package/Shaders/Materials.meta +8 -8
  871. package/Shaders/ShaderGraph/BackgroundMask.shadergraph +1653 -1653
  872. package/Shaders/ShaderGraph/BackgroundMask.shadergraph.meta +10 -10
  873. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph +835 -835
  874. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph.meta +10 -10
  875. package/Shaders/ShaderGraph.meta +8 -8
  876. package/Shaders/Support/EnhancedImageSupport.shader +64 -0
  877. package/Shaders/Support/EnhancedImageSupport.shader.meta +9 -0
  878. package/Shaders/Support.meta +8 -0
  879. package/Shaders.meta +8 -8
  880. package/Styles/Elements/Progress/ArcedProgressBar.cs +345 -345
  881. package/Styles/Elements/Progress/ArcedProgressBar.cs.meta +2 -2
  882. package/Styles/Elements/Progress/CircularProgressBar.cs +307 -307
  883. package/Styles/Elements/Progress/CircularProgressBar.cs.meta +2 -2
  884. package/Styles/Elements/Progress/GlitchProgressBar.cs +416 -416
  885. package/Styles/Elements/Progress/GlitchProgressBar.cs.meta +2 -2
  886. package/Styles/Elements/Progress/LiquidProgressBar.cs +632 -632
  887. package/Styles/Elements/Progress/LiquidProgressBar.cs.meta +2 -2
  888. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs +722 -722
  889. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs.meta +2 -2
  890. package/Styles/Elements/Progress/RegularProgressBar.cs +405 -405
  891. package/Styles/Elements/Progress/RegularProgressBar.cs.meta +2 -2
  892. package/Styles/Elements/Progress/WigglyProgressBar.cs +837 -837
  893. package/Styles/Elements/Progress/WigglyProgressBar.cs.meta +2 -2
  894. package/Styles/Elements/Progress.meta +2 -2
  895. package/Styles/Elements.meta +2 -2
  896. package/Styles/USS/ArcedProgressBar.uss +18 -18
  897. package/Styles/USS/ArcedProgressBar.uss.meta +2 -2
  898. package/Styles/USS/CirclularProgressBar.uss +17 -17
  899. package/Styles/USS/CirclularProgressBar.uss.meta +2 -2
  900. package/Styles/USS/RegularProgressBar.uss +32 -32
  901. package/Styles/USS/RegularProgressBar.uss.meta +2 -2
  902. package/Styles/USS/WigglyProgressBar.uss +16 -16
  903. package/Styles/USS/WigglyProgressBar.uss.meta +2 -2
  904. package/Styles/USS.meta +2 -2
  905. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef +14 -17
  906. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef.meta +7 -7
  907. package/Styles.meta +2 -2
  908. package/THIRD_PARTY_NOTICES.md +74 -0
  909. package/THIRD_PARTY_NOTICES.md.meta +7 -0
  910. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +171 -0
  911. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs.meta +11 -0
  912. package/Tests/Editor/Attributes.meta +8 -0
  913. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +118 -0
  914. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs.meta +11 -0
  915. package/Tests/Editor/Core/Attributes.meta +8 -0
  916. package/Tests/Editor/Core.meta +8 -0
  917. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs +194 -0
  918. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs.meta +3 -0
  919. package/Tests/Editor/Extensions.meta +3 -0
  920. package/Tests/Editor/Helper/DummyScriptableObject.cs +6 -0
  921. package/Tests/Editor/Helper/DummyScriptableObject.cs.meta +3 -0
  922. package/Tests/Editor/Helper/HelpersTests.cs +101 -0
  923. package/Tests/Editor/Helper/HelpersTests.cs.meta +3 -0
  924. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs +63 -0
  925. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs.meta +11 -0
  926. package/Tests/Editor/Helper/PromptScope.cs +28 -0
  927. package/Tests/Editor/Helper/PromptScope.cs.meta +11 -0
  928. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs +105 -0
  929. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs.meta +11 -0
  930. package/Tests/Editor/Helper/SpriteHelpersTests.cs +334 -0
  931. package/Tests/Editor/Helper/SpriteHelpersTests.cs.meta +3 -0
  932. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs +183 -0
  933. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs.meta +11 -0
  934. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs +161 -0
  935. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs.meta +11 -0
  936. package/Tests/Editor/Helper.meta +3 -0
  937. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs +40 -0
  938. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs.meta +11 -0
  939. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +81 -0
  940. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs.meta +11 -0
  941. package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs +170 -0
  942. package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs.meta +11 -0
  943. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +37 -0
  944. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef.meta +7 -0
  945. package/Tests/Editor/Integrations/VContainer.meta +8 -0
  946. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +37 -0
  947. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef.meta +7 -0
  948. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs +40 -0
  949. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs.meta +11 -0
  950. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs +131 -0
  951. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs.meta +11 -0
  952. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +80 -0
  953. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs.meta +11 -0
  954. package/Tests/Editor/Integrations/Zenject.meta +8 -0
  955. package/Tests/Editor/Integrations.meta +8 -0
  956. package/Tests/Editor/MultiFileSelectorElementTests.cs +265 -0
  957. package/Tests/Editor/MultiFileSelectorElementTests.cs.meta +11 -0
  958. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs +100 -0
  959. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs.meta +11 -0
  960. package/Tests/Editor/PersistentDirectorySettingsTests.cs +59 -0
  961. package/Tests/Editor/PersistentDirectorySettingsTests.cs.meta +11 -0
  962. package/Tests/Editor/PrefabCheckerReportTests.cs +32 -0
  963. package/Tests/Editor/PrefabCheckerReportTests.cs.meta +11 -0
  964. package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs +64 -0
  965. package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs.meta +11 -0
  966. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +199 -0
  967. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs.meta +11 -0
  968. package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs +38 -0
  969. package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs.meta +11 -0
  970. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +108 -0
  971. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs.meta +11 -0
  972. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +323 -0
  973. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs.meta +11 -0
  974. package/Tests/Editor/Sprites/SpriteCropperTests.cs +162 -0
  975. package/Tests/Editor/Sprites/SpriteCropperTests.cs.meta +11 -0
  976. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs +227 -0
  977. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs.meta +11 -0
  978. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +113 -0
  979. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs.meta +11 -0
  980. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +46 -0
  981. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs.meta +11 -0
  982. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +248 -0
  983. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs.meta +11 -0
  984. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +180 -0
  985. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs.meta +11 -0
  986. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +295 -0
  987. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs.meta +11 -0
  988. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +134 -0
  989. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs.meta +11 -0
  990. package/Tests/Editor/Sprites.meta +8 -0
  991. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs +10 -0
  992. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs.meta +11 -0
  993. package/Tests/Editor/TestComponents.meta +8 -0
  994. package/Tests/Editor/Tools/ImageBlurToolTests.cs +47 -0
  995. package/Tests/Editor/Tools/ImageBlurToolTests.cs.meta +11 -0
  996. package/Tests/Editor/Tools.meta +8 -0
  997. package/Tests/Editor/Utils/CommonTestBase.cs +250 -0
  998. package/Tests/Editor/Utils/CommonTestBase.cs.meta +11 -0
  999. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs +306 -0
  1000. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs.meta +9 -0
  1001. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +183 -0
  1002. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs.meta +11 -0
  1003. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs +466 -0
  1004. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs.meta +11 -0
  1005. package/Tests/Editor/Utils.meta +3 -0
  1006. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +19 -0
  1007. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
  1008. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +773 -0
  1009. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs.meta +11 -0
  1010. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs +96 -0
  1011. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs.meta +11 -0
  1012. package/Tests/Editor/Windows/PrefabCheckerTests.cs +81 -0
  1013. package/Tests/Editor/Windows/PrefabCheckerTests.cs.meta +11 -0
  1014. package/Tests/Editor/Windows.meta +8 -0
  1015. package/Tests/Editor.meta +8 -0
  1016. package/Tests/Runtime/AssemblyInfo.cs +4 -0
  1017. package/Tests/Runtime/AssemblyInfo.cs.meta +3 -0
  1018. package/Tests/Runtime/Attributes/ChildComponentTests.cs +766 -81
  1019. package/Tests/Runtime/Attributes/ChildComponentTests.cs.meta +2 -2
  1020. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  1021. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs.meta +2 -2
  1022. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  1023. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs.meta +2 -2
  1024. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs +34 -34
  1025. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs.meta +2 -2
  1026. package/Tests/Runtime/Attributes/Components/RelationalComponentsTesterSimple.cs +37 -0
  1027. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentsTesterSimple.cs.meta +2 -2
  1028. package/Tests/Runtime/Attributes/Components.meta +2 -2
  1029. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs +75 -0
  1030. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs.meta +11 -0
  1031. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs +26 -0
  1032. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs.meta +3 -0
  1033. package/Tests/Runtime/Attributes/ParentComponentTests.cs +565 -68
  1034. package/Tests/Runtime/Attributes/ParentComponentTests.cs.meta +2 -2
  1035. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs +614 -0
  1036. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs.meta +11 -0
  1037. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs +478 -0
  1038. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs.meta +11 -0
  1039. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs +56 -0
  1040. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs.meta +11 -0
  1041. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs +226 -0
  1042. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs.meta +11 -0
  1043. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +98 -0
  1044. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs.meta +11 -0
  1045. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs +234 -0
  1046. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs.meta +11 -0
  1047. package/Tests/Runtime/Attributes/SiblingComponentTests.cs +721 -0
  1048. package/Tests/Runtime/Attributes/SiblingComponentTests.cs.meta +11 -0
  1049. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs +96 -0
  1050. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs.meta +11 -0
  1051. package/Tests/Runtime/Attributes.meta +2 -2
  1052. package/Tests/Runtime/Core/Random/RandomComparerTests.cs +166 -0
  1053. package/Tests/Runtime/Core/Random/RandomComparerTests.cs.meta +11 -0
  1054. package/Tests/Runtime/Core/Random.meta +8 -0
  1055. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs +56 -56
  1056. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs.meta +2 -2
  1057. package/Tests/Runtime/Core/Threading.meta +2 -2
  1058. package/Tests/Runtime/Core.meta +2 -2
  1059. package/Tests/Runtime/DataStructures/BalancedKDTree2DTests.cs +562 -0
  1060. package/Tests/Runtime/DataStructures/{BalancedKDTreeTests.cs.meta → BalancedKDTree2DTests.cs.meta} +11 -11
  1061. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs +10 -0
  1062. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs.meta +11 -0
  1063. package/Tests/Runtime/DataStructures/BitSetTests.cs +1400 -0
  1064. package/Tests/Runtime/DataStructures/BitSetTests.cs.meta +3 -0
  1065. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs +1215 -0
  1066. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs.meta +11 -0
  1067. package/Tests/Runtime/DataStructures/CircleTests.cs +965 -0
  1068. package/Tests/Runtime/DataStructures/CircleTests.cs.meta +11 -0
  1069. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +2083 -324
  1070. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs.meta +2 -2
  1071. package/Tests/Runtime/DataStructures/DequeTests.cs +790 -0
  1072. package/Tests/Runtime/DataStructures/DequeTests.cs.meta +3 -0
  1073. package/Tests/Runtime/DataStructures/DisjointSetTests.cs +1114 -0
  1074. package/Tests/Runtime/DataStructures/DisjointSetTests.cs.meta +3 -0
  1075. package/Tests/Runtime/DataStructures/FastOneOfTests.cs +966 -0
  1076. package/Tests/Runtime/DataStructures/FastOneOfTests.cs.meta +11 -0
  1077. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs +286 -0
  1078. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs.meta +11 -0
  1079. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs +414 -0
  1080. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs.meta +11 -0
  1081. package/Tests/Runtime/DataStructures/HeapTests.cs +1953 -0
  1082. package/Tests/Runtime/DataStructures/HeapTests.cs.meta +11 -0
  1083. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs +833 -0
  1084. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs.meta +3 -0
  1085. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs +297 -0
  1086. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs.meta +11 -0
  1087. package/Tests/Runtime/DataStructures/OctTree3DTests.cs +351 -0
  1088. package/Tests/Runtime/DataStructures/OctTree3DTests.cs.meta +11 -0
  1089. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs +71 -0
  1090. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs.meta +3 -0
  1091. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs +475 -0
  1092. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs.meta +11 -0
  1093. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs +660 -0
  1094. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs.meta +11 -0
  1095. package/Tests/Runtime/DataStructures/RTree2DTests.cs +823 -0
  1096. package/Tests/Runtime/DataStructures/RTree2DTests.cs.meta +3 -0
  1097. package/Tests/Runtime/DataStructures/RTree3DTests.cs +270 -0
  1098. package/Tests/Runtime/DataStructures/RTree3DTests.cs.meta +11 -0
  1099. package/Tests/Runtime/DataStructures/SparseSetTests.cs +1146 -0
  1100. package/Tests/Runtime/DataStructures/SparseSetTests.cs.meta +3 -0
  1101. package/Tests/Runtime/DataStructures/SpatialHashTests.cs +992 -0
  1102. package/Tests/Runtime/DataStructures/SpatialHashTests.cs.meta +11 -0
  1103. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs +351 -0
  1104. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs.meta +11 -0
  1105. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs +127 -0
  1106. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs.meta +11 -0
  1107. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs +218 -0
  1108. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs.meta +11 -0
  1109. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs +396 -0
  1110. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs.meta +11 -0
  1111. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +281 -0
  1112. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs.meta +11 -0
  1113. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs +127 -0
  1114. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs.meta +11 -0
  1115. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs +170 -0
  1116. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs.meta +11 -0
  1117. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs +474 -0
  1118. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs.meta +11 -0
  1119. package/Tests/Runtime/DataStructures/SphereTests.cs +806 -0
  1120. package/Tests/Runtime/DataStructures/SphereTests.cs.meta +3 -0
  1121. package/Tests/Runtime/DataStructures/StringWrapperTests.cs +333 -0
  1122. package/Tests/Runtime/DataStructures/StringWrapperTests.cs.meta +11 -0
  1123. package/Tests/Runtime/DataStructures/TimedCacheTests.cs +669 -0
  1124. package/Tests/Runtime/DataStructures/TimedCacheTests.cs.meta +11 -0
  1125. package/Tests/Runtime/DataStructures/TrieTests.cs +3385 -0
  1126. package/Tests/Runtime/DataStructures/TrieTests.cs.meta +11 -0
  1127. package/Tests/Runtime/DataStructures/UnbalancedKDTree2DTests.cs +565 -0
  1128. package/Tests/Runtime/DataStructures/{UnbalancedKDTreeTests.cs.meta → UnbalancedKDTree2DTests.cs.meta} +11 -11
  1129. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs +10 -0
  1130. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs.meta +11 -0
  1131. package/Tests/Runtime/DataStructures.meta +8 -8
  1132. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs +28 -0
  1133. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs.meta +11 -0
  1134. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +667 -0
  1135. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs.meta +11 -0
  1136. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs +230 -0
  1137. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs.meta +11 -0
  1138. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs +55 -0
  1139. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs.meta +11 -0
  1140. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +724 -438
  1141. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  1142. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs +403 -0
  1143. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs.meta +11 -0
  1144. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs +69 -0
  1145. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs.meta +11 -0
  1146. package/Tests/Runtime/Extensions/EnumExtensionTests.cs +809 -153
  1147. package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
  1148. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs +191 -0
  1149. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs.meta +11 -0
  1150. package/Tests/Runtime/Extensions/IListExtensionTests.cs +955 -169
  1151. package/Tests/Runtime/Extensions/IListExtensionTests.cs.meta +2 -2
  1152. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs +266 -58
  1153. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs.meta +2 -2
  1154. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs +721 -718
  1155. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs.meta +2 -2
  1156. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs +565 -0
  1157. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs.meta +3 -0
  1158. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs +100 -0
  1159. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs.meta +11 -0
  1160. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +719 -27
  1161. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  1162. package/Tests/Runtime/Extensions/StringExtensionTests.cs +2592 -31
  1163. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  1164. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs +166 -0
  1165. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs.meta +11 -0
  1166. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs +1446 -0
  1167. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs.meta +11 -0
  1168. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs +1779 -0
  1169. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs.meta +11 -0
  1170. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs +292 -0
  1171. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs.meta +11 -0
  1172. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs +260 -0
  1173. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs.meta +11 -0
  1174. package/Tests/Runtime/Extensions.meta +2 -2
  1175. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  1176. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  1177. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs +38 -0
  1178. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs.meta +11 -0
  1179. package/Tests/Runtime/Helper/DirectoryHelperTests.cs +347 -0
  1180. package/Tests/Runtime/Helper/DirectoryHelperTests.cs.meta +11 -0
  1181. package/Tests/Runtime/Helper/EnumerablesTests.cs +45 -0
  1182. package/Tests/Runtime/Helper/EnumerablesTests.cs.meta +11 -0
  1183. package/Tests/Runtime/Helper/FileHelperTests.cs +481 -0
  1184. package/Tests/Runtime/Helper/FileHelperTests.cs.meta +11 -0
  1185. package/Tests/Runtime/Helper/FormattingHelpersTests.cs +353 -0
  1186. package/Tests/Runtime/Helper/FormattingHelpersTests.cs.meta +11 -0
  1187. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs +27 -0
  1188. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs.meta +11 -0
  1189. package/Tests/Runtime/Helper/GeometryTests.cs +517 -0
  1190. package/Tests/Runtime/Helper/GeometryTests.cs.meta +3 -0
  1191. package/Tests/Runtime/Helper/HelpersTests.cs +749 -0
  1192. package/Tests/Runtime/Helper/HelpersTests.cs.meta +11 -0
  1193. package/Tests/Runtime/Helper/IterationHelpersTests.cs +173 -0
  1194. package/Tests/Runtime/Helper/IterationHelpersTests.cs.meta +11 -0
  1195. package/Tests/Runtime/Helper/LineHelperTests.cs +662 -0
  1196. package/Tests/Runtime/Helper/LineHelperTests.cs.meta +11 -0
  1197. package/Tests/Runtime/Helper/ObjectHelperTests.cs +444 -432
  1198. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  1199. package/Tests/Runtime/Helper/ObjectsTests.cs +363 -0
  1200. package/Tests/Runtime/Helper/ObjectsTests.cs.meta +3 -0
  1201. package/Tests/Runtime/Helper/PathHelperTests.cs +183 -0
  1202. package/Tests/Runtime/Helper/PathHelperTests.cs.meta +11 -0
  1203. package/Tests/Runtime/Helper/ReflectionHelperTests.cs +2199 -1493
  1204. package/Tests/Runtime/Helper/ReflectionHelperTests.cs.meta +2 -2
  1205. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs +192 -0
  1206. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs.meta +11 -0
  1207. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs +58 -0
  1208. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs.meta +11 -0
  1209. package/Tests/Runtime/Helper/SceneHelperTests.cs +77 -94
  1210. package/Tests/Runtime/Helper/SceneHelperTests.cs.meta +2 -2
  1211. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs +45 -0
  1212. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs.meta +11 -0
  1213. package/Tests/Runtime/Helper/WallMathTests.cs +1884 -233
  1214. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  1215. package/Tests/Runtime/Helper.meta +2 -2
  1216. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +601 -0
  1217. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs.meta +11 -0
  1218. package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs +86 -0
  1219. package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs.meta +11 -0
  1220. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef +38 -0
  1221. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef.meta +7 -0
  1222. package/Tests/Runtime/Integrations/VContainer.meta +8 -0
  1223. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +619 -0
  1224. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs.meta +11 -0
  1225. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef +38 -0
  1226. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef.meta +7 -0
  1227. package/Tests/Runtime/Integrations/Zenject.meta +8 -0
  1228. package/Tests/Runtime/Integrations.meta +8 -0
  1229. package/Tests/Runtime/Math/Line2DTests.cs +594 -0
  1230. package/Tests/Runtime/Math/Line2DTests.cs.meta +11 -0
  1231. package/Tests/Runtime/Math/Line3DTests.cs +655 -0
  1232. package/Tests/Runtime/Math/Line3DTests.cs.meta +11 -0
  1233. package/Tests/Runtime/Math/LineTests.cs +480 -0
  1234. package/Tests/Runtime/Math/LineTests.cs.meta +11 -0
  1235. package/Tests/Runtime/Math/ParabolaTests.cs +477 -0
  1236. package/Tests/Runtime/Math/ParabolaTests.cs.meta +11 -0
  1237. package/Tests/Runtime/Math/PointPolygonCheckTests.cs +939 -0
  1238. package/Tests/Runtime/Math/PointPolygonCheckTests.cs.meta +11 -0
  1239. package/Tests/Runtime/Math/RangeTests.cs +197 -0
  1240. package/Tests/Runtime/Math/RangeTests.cs.meta +11 -0
  1241. package/Tests/Runtime/Math.meta +8 -0
  1242. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs +81 -0
  1243. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs.meta +11 -0
  1244. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs +421 -0
  1245. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs.meta +3 -0
  1246. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs +76 -76
  1247. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs.meta +2 -2
  1248. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs +161 -0
  1249. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs.meta +11 -0
  1250. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs +207 -0
  1251. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs.meta +3 -0
  1252. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +195 -181
  1253. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  1254. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +60 -61
  1255. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  1256. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +697 -0
  1257. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs.meta +11 -0
  1258. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +653 -0
  1259. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs.meta +11 -0
  1260. package/Tests/Runtime/Performance.meta +8 -8
  1261. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  1262. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  1263. package/Tests/Runtime/Random/IllusionFlowTests.cs +12 -12
  1264. package/Tests/Runtime/Random/IllusionFlowTests.cs.meta +2 -2
  1265. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
  1266. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs.meta +2 -2
  1267. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  1268. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  1269. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs +494 -0
  1270. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs.meta +3 -0
  1271. package/Tests/Runtime/Random/RandomStateSerializationTests.cs +304 -0
  1272. package/Tests/Runtime/Random/RandomStateSerializationTests.cs.meta +4 -0
  1273. package/Tests/Runtime/Random/RandomTestBase.cs +836 -787
  1274. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  1275. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  1276. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  1277. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  1278. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  1279. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  1280. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  1281. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  1282. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  1283. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  1284. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  1285. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  1286. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  1287. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  1288. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  1289. package/Tests/Runtime/Random/XoroShiroRandomTests.cs +9 -9
  1290. package/Tests/Runtime/Random/XoroShiroRandomTests.cs.meta +2 -2
  1291. package/Tests/Runtime/Random.meta +8 -8
  1292. package/Tests/Runtime/RuntimeTestTimeouts.cs +3 -0
  1293. package/Tests/Runtime/RuntimeTestTimeouts.cs.meta +11 -0
  1294. package/Tests/Runtime/Scenes/Test1.unity +723 -723
  1295. package/Tests/Runtime/Scenes/Test1.unity.meta +7 -7
  1296. package/Tests/Runtime/Scenes/Test2.unity +723 -723
  1297. package/Tests/Runtime/Scenes/Test2.unity.meta +7 -7
  1298. package/Tests/Runtime/Scenes.meta +2 -2
  1299. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs +67 -0
  1300. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs.meta +11 -0
  1301. package/Tests/Runtime/Serialization/BitSetJsonTests.cs +50 -0
  1302. package/Tests/Runtime/Serialization/BitSetJsonTests.cs.meta +11 -0
  1303. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs +67 -0
  1304. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs.meta +11 -0
  1305. package/Tests/Runtime/Serialization/DequeJsonTests.cs +70 -0
  1306. package/Tests/Runtime/Serialization/DequeJsonTests.cs.meta +11 -0
  1307. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs +25 -0
  1308. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs.meta +11 -0
  1309. package/Tests/Runtime/Serialization/JsonConverterAdditionalTests.cs +30 -0
  1310. package/Tests/Runtime/Serialization/JsonConverterAdditionalTests.cs.meta +11 -0
  1311. package/Tests/Runtime/Serialization/JsonConverterTests.cs +1153 -0
  1312. package/Tests/Runtime/Serialization/JsonConverterTests.cs.meta +11 -0
  1313. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +239 -0
  1314. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs.meta +11 -0
  1315. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs +458 -0
  1316. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs.meta +3 -0
  1317. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +167 -156
  1318. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  1319. package/Tests/Runtime/Serialization/MathJsonTests.cs +79 -0
  1320. package/Tests/Runtime/Serialization/MathJsonTests.cs.meta +11 -0
  1321. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs +76 -0
  1322. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs.meta +11 -0
  1323. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs +80 -0
  1324. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs.meta +11 -0
  1325. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +257 -0
  1326. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs.meta +11 -0
  1327. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs +471 -0
  1328. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs.meta +3 -0
  1329. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs +169 -0
  1330. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs.meta +11 -0
  1331. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs +62 -0
  1332. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs.meta +11 -0
  1333. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +907 -0
  1334. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs.meta +3 -0
  1335. package/Tests/Runtime/Serialization/SerializerFileIoTests.cs +105 -0
  1336. package/Tests/Runtime/Serialization/SerializerFileIoTests.cs.meta +11 -0
  1337. package/Tests/Runtime/Serialization/TypeConverterTests.cs +34 -0
  1338. package/Tests/Runtime/Serialization/TypeConverterTests.cs.meta +11 -0
  1339. package/Tests/Runtime/Serialization/UnityEngineObjectJsonTests.cs +247 -0
  1340. package/Tests/Runtime/Serialization/UnityEngineObjectJsonTests.cs.meta +11 -0
  1341. package/Tests/Runtime/Serialization.meta +2 -2
  1342. package/Tests/Runtime/Tags/AttributeComponentTests.cs +174 -0
  1343. package/Tests/Runtime/Tags/AttributeComponentTests.cs.meta +3 -0
  1344. package/Tests/Runtime/Tags/AttributeDataTests.cs +312 -0
  1345. package/Tests/Runtime/Tags/AttributeDataTests.cs.meta +11 -0
  1346. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs +405 -0
  1347. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs.meta +3 -0
  1348. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs +147 -0
  1349. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs.meta +11 -0
  1350. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs +60 -0
  1351. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs.meta +3 -0
  1352. package/Tests/Runtime/Tags/EffectHandleTests.cs +61 -0
  1353. package/Tests/Runtime/Tags/EffectHandleTests.cs.meta +3 -0
  1354. package/Tests/Runtime/Tags/EffectHandlerTests.cs +270 -0
  1355. package/Tests/Runtime/Tags/EffectHandlerTests.cs.meta +3 -0
  1356. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs +39 -0
  1357. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs.meta +3 -0
  1358. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs +49 -0
  1359. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs.meta +3 -0
  1360. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs +28 -0
  1361. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs.meta +3 -0
  1362. package/Tests/Runtime/Tags/Helpers.meta +3 -0
  1363. package/Tests/Runtime/Tags/TagHandlerTests.cs +108 -0
  1364. package/Tests/Runtime/Tags/TagHandlerTests.cs.meta +3 -0
  1365. package/Tests/Runtime/Tags.meta +8 -0
  1366. package/Tests/Runtime/TestUtils/CommonTestBase.cs +301 -0
  1367. package/Tests/Runtime/TestUtils/CommonTestBase.cs.meta +11 -0
  1368. package/Tests/Runtime/TestUtils/GCAssert.cs +55 -0
  1369. package/Tests/Runtime/TestUtils/GCAssert.cs.meta +11 -0
  1370. package/Tests/Runtime/TestUtils/SpatialAssert.cs +33 -0
  1371. package/Tests/Runtime/TestUtils/SpatialAssert.cs.meta +11 -0
  1372. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs +195 -0
  1373. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs.meta +11 -0
  1374. package/Tests/Runtime/TestUtils.meta +8 -0
  1375. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs +144 -0
  1376. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs.meta +11 -0
  1377. package/Tests/Runtime/Utils/Ascii85Tests.cs +56 -0
  1378. package/Tests/Runtime/Utils/Ascii85Tests.cs.meta +11 -0
  1379. package/Tests/Runtime/Utils/BuffersTests.cs +1148 -741
  1380. package/Tests/Runtime/Utils/BuffersTests.cs.meta +2 -2
  1381. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs +31 -0
  1382. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs.meta +11 -0
  1383. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs +67 -0
  1384. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs.meta +11 -0
  1385. package/Tests/Runtime/Utils/ChildSpawnerTests.cs +490 -0
  1386. package/Tests/Runtime/Utils/ChildSpawnerTests.cs.meta +11 -0
  1387. package/Tests/Runtime/Utils/CircleLineRendererTests.cs +80 -0
  1388. package/Tests/Runtime/Utils/CircleLineRendererTests.cs.meta +11 -0
  1389. package/Tests/Runtime/Utils/CollisionProxyTests.cs +442 -0
  1390. package/Tests/Runtime/Utils/CollisionProxyTests.cs.meta +11 -0
  1391. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +353 -0
  1392. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs.meta +11 -0
  1393. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs +44 -0
  1394. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs.meta +11 -0
  1395. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +249 -0
  1396. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs.meta +11 -0
  1397. package/Tests/Runtime/Utils/LZMATests.cs +31 -0
  1398. package/Tests/Runtime/Utils/LZMATests.cs.meta +11 -0
  1399. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs +86 -0
  1400. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs.meta +11 -0
  1401. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +503 -0
  1402. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs.meta +11 -0
  1403. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs +34 -0
  1404. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs.meta +11 -0
  1405. package/Tests/Runtime/Utils/MatchTransformTests.cs +495 -0
  1406. package/Tests/Runtime/Utils/MatchTransformTests.cs.meta +11 -0
  1407. package/Tests/Runtime/Utils/OscillatorTests.cs +540 -0
  1408. package/Tests/Runtime/Utils/OscillatorTests.cs.meta +11 -0
  1409. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs +52 -0
  1410. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs.meta +11 -0
  1411. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs +766 -0
  1412. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs.meta +11 -0
  1413. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs +47 -0
  1414. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs.meta +11 -0
  1415. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs +361 -0
  1416. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs.meta +11 -0
  1417. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +383 -398
  1418. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  1419. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs +134 -0
  1420. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs.meta +11 -0
  1421. package/Tests/Runtime/Utils/StartTrackerTests.cs +24 -0
  1422. package/Tests/Runtime/Utils/StartTrackerTests.cs.meta +11 -0
  1423. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs +114 -0
  1424. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs.meta +11 -0
  1425. package/Tests/Runtime/Utils/TextureScaleTests.cs +298 -0
  1426. package/Tests/Runtime/Utils/TextureScaleTests.cs.meta +3 -0
  1427. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs +36 -0
  1428. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs.meta +11 -0
  1429. package/Tests/Runtime/Utils/TypeNameSorterTests.cs +34 -0
  1430. package/Tests/Runtime/Utils/TypeNameSorterTests.cs.meta +11 -0
  1431. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs +63 -0
  1432. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs.meta +11 -0
  1433. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs +59 -0
  1434. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs.meta +11 -0
  1435. package/Tests/Runtime/Utils.meta +2 -2
  1436. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs +266 -0
  1437. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs.meta +11 -0
  1438. package/Tests/Runtime/Visuals/EnhancedImageTests.cs +153 -0
  1439. package/Tests/Runtime/Visuals/EnhancedImageTests.cs.meta +11 -0
  1440. package/Tests/Runtime/Visuals/LayeredImageTests.cs +422 -0
  1441. package/Tests/Runtime/Visuals/LayeredImageTests.cs.meta +11 -0
  1442. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +125 -0
  1443. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs.meta +11 -0
  1444. package/Tests/Runtime/Visuals.meta +3 -0
  1445. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +24 -23
  1446. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  1447. package/Tests/Runtime.meta +8 -8
  1448. package/Tests.meta +8 -8
  1449. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset +63 -63
  1450. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset.meta +8 -8
  1451. package/URP/VolumeProfiles.meta +8 -8
  1452. package/URP.meta +8 -8
  1453. package/node_modules.meta +8 -0
  1454. package/package-lock.json.meta +7 -0
  1455. package/package.json +99 -38
  1456. package/package.json.meta +7 -7
  1457. package/scripts/check-eol.ps1 +51 -0
  1458. package/scripts/check-eol.ps1.meta +7 -0
  1459. package/scripts/clean-nul.ps1 +29 -0
  1460. package/scripts/clean-nul.ps1.meta +7 -0
  1461. package/scripts/lint-doc-links.ps1 +80 -0
  1462. package/scripts/lint-doc-links.ps1.meta +7 -0
  1463. package/scripts/lint-tests.ps1 +156 -0
  1464. package/scripts/lint-tests.ps1.meta +7 -0
  1465. package/scripts/normalize-eol.ps1 +68 -0
  1466. package/scripts/normalize-eol.ps1.meta +7 -0
  1467. package/scripts.meta +8 -0
  1468. package/Editor/Sprites/ProjectAnimationSettings.cs +0 -50
  1469. package/Editor/Sprites/ProjectAnimationSettings.cs.meta +0 -3
  1470. package/Editor/Sprites/TextureSettingsApplier.cs +0 -178
  1471. package/Editor/Sprites/TextureSettingsApplier.cs.meta +0 -3
  1472. package/Runtime/Core/Attributes/ParentComponent.cs +0 -189
  1473. package/Runtime/Core/DataStructure/KDTree.cs +0 -434
  1474. package/Runtime/Core/DataStructure/QuadTree.cs +0 -431
  1475. package/Runtime/Core/DataStructure/RTree.cs +0 -356
  1476. package/Runtime/Core/Extension/HashSetExtensions.cs +0 -12
  1477. package/Runtime/Core/Extension/HashSetExtensions.cs.meta +0 -11
  1478. package/Runtime/Core/Math/Line.cs +0 -55
  1479. package/Runtime/Core/Math/Line.cs.meta +0 -11
  1480. package/Runtime/Core/Math/XXHash.cs +0 -310
  1481. package/Runtime/Core/Math/XXHash.cs.meta +0 -11
  1482. package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +0 -40
  1483. package/Tests/Runtime/Components.meta +0 -3
  1484. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +0 -14
  1485. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +0 -14
  1486. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +0 -11
  1487. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +0 -130
  1488. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +0 -11
  1489. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +0 -14
  1490. package/Tests/Runtime/Helper/FormattingHelperTests.cs +0 -129
  1491. package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +0 -3
  1492. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +0 -14
  1493. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +0 -11
  1494. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +0 -14
  1495. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +0 -11
  1496. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +0 -158
  1497. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +0 -11
  1498. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +0 -14
  1499. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +0 -11
  1500. package/Third Party Notices.md +0 -1
@@ -1,233 +1,1884 @@
1
- namespace WallstopStudios.UnityHelpers.Tests.Helper
2
- {
3
- using NUnit.Framework;
4
- using UnityEngine;
5
- using WallstopStudios.UnityHelpers.Core.Extension;
6
- using WallstopStudios.UnityHelpers.Core.Helper;
7
- using WallstopStudios.UnityHelpers.Core.Random;
8
-
9
- public sealed class WallMathTests
10
- {
11
- private const int TestIterations = 10_000;
12
-
13
- [Test]
14
- public void ApproximatelyRandom()
15
- {
16
- for (int i = 0; i < TestIterations; ++i)
17
- {
18
- float target = PRNG.Instance.NextFloat(-1_000, 1_000);
19
- float delta = PRNG.Instance.NextFloat(1f, 10f);
20
-
21
- float insideOffset = delta * PRNG.Instance.NextFloat();
22
- if (PRNG.Instance.NextBool())
23
- {
24
- insideOffset *= -1;
25
- }
26
-
27
- float inside = target + insideOffset;
28
- Assert.IsTrue(
29
- target.Approximately(inside, delta),
30
- $"Target {target} is not close enough to {inside} with a delta of {delta}."
31
- );
32
-
33
- float outsideOffset = delta * PRNG.Instance.NextFloat(1.001f, 10f);
34
- if (PRNG.Instance.NextBool())
35
- {
36
- outsideOffset *= -1;
37
- }
38
-
39
- float outside = target + outsideOffset;
40
- Assert.IsFalse(
41
- target.Approximately(outside, delta),
42
- $"Target {target} was unexpectedly close to {outside} with a delta of {delta}."
43
- );
44
- }
45
- }
46
-
47
- [Test]
48
- public void PositiveMod()
49
- {
50
- Assert.AreEqual(9, (-1).PositiveMod(10));
51
- Assert.AreEqual(1, 1.PositiveMod(10));
52
- Assert.AreEqual(9f, (-1f).PositiveMod(10f));
53
- Assert.AreEqual(1f, 1f.PositiveMod(10f));
54
- Assert.AreEqual(9.0, (-1.0).PositiveMod(10.0));
55
- Assert.AreEqual(1.0, 1.0.PositiveMod(10.0));
56
- Assert.AreEqual(9L, (-1L).PositiveMod(10L));
57
- Assert.AreEqual(1L, 1L.PositiveMod(10L));
58
- }
59
-
60
- [Test]
61
- public void ApproximatelyExpected()
62
- {
63
- Assert.IsTrue(0f.Approximately(0f, 0f));
64
- Assert.IsTrue(0f.Approximately(0.5f, 1f));
65
- Assert.IsFalse(0.001f.Approximately(0f, 0f));
66
- Assert.IsFalse(100f.Approximately(5f, 2.4f));
67
- Assert.IsTrue(0.001f.Approximately(0.0001f));
68
- }
69
-
70
- [Test]
71
- public void ClampRectInsideRandom()
72
- {
73
- for (int i = 0; i < TestIterations; ++i)
74
- {
75
- Vector2 position = PRNG.Instance.NextVector2InRange(10f);
76
-
77
- Vector2 size;
78
- do
79
- {
80
- size = PRNG.Instance.NextVector2InRange(10f);
81
- } while (size.x < 0 || size.y < 0);
82
-
83
- Rect rect = new(position, size);
84
-
85
- Vector2 inside = new(
86
- PRNG.Instance.NextFloat(rect.min.x, rect.max.x),
87
- PRNG.Instance.NextFloat(rect.min.y, rect.max.y)
88
- );
89
- Assert.IsTrue(rect.Contains(inside), $"Rect {rect} does not contain {inside}.");
90
- Vector2 clamped = rect.Clamp(inside);
91
- Assert.AreEqual(inside, clamped);
92
- }
93
- }
94
-
95
- [Test]
96
- public void ClampRectInsideExpected()
97
- {
98
- Rect rect = new Rect(Vector2.one, Vector2.one);
99
- Vector2 clamped = rect.Clamp(rect.center);
100
- Assert.AreEqual(rect.center, clamped);
101
-
102
- Vector2 inside =
103
- rect.center
104
- + new Vector2(PRNG.Instance.NextFloat(0.1f), PRNG.Instance.NextFloat(0.1f));
105
- clamped = rect.Clamp(inside);
106
- Assert.AreEqual(
107
- inside,
108
- clamped,
109
- $"Expected inside point {inside} unexpectedly was clamped to {clamped} for rect {rect}."
110
- );
111
- }
112
-
113
- [Test]
114
- public void ClampRectOutsideRandom()
115
- {
116
- Rect rect = new(Vector2.one, Vector2.one);
117
- for (int i = 0; i < TestIterations; ++i)
118
- {
119
- Vector2 outside;
120
- do
121
- {
122
- outside = PRNG.Instance.NextVector2InRange(10f, rect.center);
123
- } while (rect.Contains(outside));
124
-
125
- Vector2 originalOutside = outside;
126
- Vector2 clamped = rect.Clamp(ref outside);
127
- Debug.Log($"Clamped {originalOutside} to {clamped}.");
128
- Assert.AreNotEqual(originalOutside, clamped);
129
- Assert.AreEqual(clamped, outside);
130
-
131
- // Shrink just a little to ensure within bounds, clamping will put it right on the edge
132
- const float shrinkScaleToAccountForPrecision = 0.99f;
133
- Vector2 delta = rect.center - clamped;
134
- delta *= shrinkScaleToAccountForPrecision;
135
- clamped = rect.center + delta;
136
- Assert.IsTrue(
137
- rect.Contains(clamped),
138
- $"Expected rect {rect} to contain {clamped}, but it did not."
139
- );
140
- }
141
- }
142
-
143
- [Test]
144
- public void ClampRectOutsideExpected()
145
- {
146
- Rect rect = new(Vector2.one, Vector2.one);
147
- Vector2 outside = new(rect.center.x, 100f);
148
- Vector2 clamped = rect.Clamp(ref outside);
149
- Assert.AreEqual(clamped, outside);
150
- Assert.AreEqual(new Vector2(rect.center.x, 2f), clamped);
151
-
152
- // Shrink just a little to ensure within bounds, clamping will put it right on the edge
153
- const float shrinkScaleToAccountForPrecision = 0.99f;
154
- Vector2 delta = rect.center - clamped;
155
- delta *= shrinkScaleToAccountForPrecision;
156
- clamped = rect.center + delta;
157
- Assert.IsTrue(
158
- rect.Contains(clamped),
159
- $"Expected rect to contain {clamped}, but it did not."
160
- );
161
- }
162
-
163
- [Test]
164
- public void ClampFloat()
165
- {
166
- float value = 1.25f;
167
- float clamped = value.Clamp(0, 1);
168
- Assert.AreEqual(1, clamped);
169
- Assert.AreEqual(1.25f, value);
170
-
171
- value = 0.5f;
172
- clamped = value.Clamp(0, 1);
173
- Assert.AreEqual(0.5f, clamped);
174
- Assert.AreEqual(0.5f, value);
175
- }
176
-
177
- [Test]
178
- public void WrappedIncrementWrapped()
179
- {
180
- int ten = 10;
181
- int one = ten.WrappedIncrement(10);
182
- Assert.AreEqual(1, one);
183
- Assert.AreEqual(10, ten);
184
-
185
- int toChangeToOne = 10;
186
- int returned = WallMath.WrappedIncrement(ref toChangeToOne, 10);
187
- Assert.AreEqual(1, returned);
188
- Assert.AreEqual(1, toChangeToOne);
189
- }
190
-
191
- [Test]
192
- public void WrappedIncrementUnwrapped()
193
- {
194
- int ten = 10;
195
- int eleven = ten.WrappedIncrement(100);
196
- Assert.AreEqual(11, eleven);
197
- Assert.AreEqual(10, ten);
198
-
199
- int toChangeToEleven = 10;
200
- int returned = WallMath.WrappedIncrement(ref toChangeToEleven, 100);
201
- Assert.AreEqual(11, returned);
202
- Assert.AreEqual(11, toChangeToEleven);
203
- }
204
-
205
- [Test]
206
- public void WrappedAddWrapped()
207
- {
208
- int ten = 10;
209
- int two = ten.WrappedAdd(2, 10);
210
- Assert.AreEqual(10, ten);
211
- Assert.AreEqual(2, two);
212
-
213
- int toChangeToTwo = 10;
214
- int returned = WallMath.WrappedAdd(ref toChangeToTwo, 2, 10);
215
- Assert.AreEqual(2, returned);
216
- Assert.AreEqual(2, toChangeToTwo);
217
- }
218
-
219
- [Test]
220
- public void WrappedAddUnwrapped()
221
- {
222
- int ten = 10;
223
- int twelve = ten.WrappedAdd(2, 100);
224
- Assert.AreEqual(10, ten);
225
- Assert.AreEqual(12, twelve);
226
-
227
- int toChangeToTwelve = 10;
228
- int returned = WallMath.WrappedAdd(ref toChangeToTwelve, 2, 100);
229
- Assert.AreEqual(12, returned);
230
- Assert.AreEqual(12, toChangeToTwelve);
231
- }
232
- }
233
- }
1
+ // ReSharper disable EqualExpressionComparison
2
+ // ReSharper disable CompareOfFloatsByEqualityOperator
3
+ namespace WallstopStudios.UnityHelpers.Tests.Helper
4
+ {
5
+ using System;
6
+ using NUnit.Framework;
7
+ using UnityEngine;
8
+ using WallstopStudios.UnityHelpers.Core.Extension;
9
+ using WallstopStudios.UnityHelpers.Core.Helper;
10
+ using WallstopStudios.UnityHelpers.Core.Random;
11
+
12
+ public sealed class WallMathTests
13
+ {
14
+ private const int TestIterations = 10_000;
15
+ private const float Epsilon = 0.0001f;
16
+
17
+ [Test]
18
+ public void BoundedDoubleValueLessThanMax()
19
+ {
20
+ double value = 5.0;
21
+ double max = 10.0;
22
+ double result = WallMath.BoundedDouble(max, value);
23
+ Assert.AreEqual(value, result);
24
+ }
25
+
26
+ [Test]
27
+ public void BoundedDoubleValueEqualToMax()
28
+ {
29
+ double max = 10.0;
30
+ double value = max;
31
+ double result = WallMath.BoundedDouble(max, value);
32
+ Assert.Less(result, max);
33
+ Assert.Greater(result, 0);
34
+ }
35
+
36
+ [Test]
37
+ public void BoundedDoubleValueGreaterThanMax()
38
+ {
39
+ double value = 15.0;
40
+ double max = 10.0;
41
+ double result = WallMath.BoundedDouble(max, value);
42
+ Assert.Less(result, value);
43
+ }
44
+
45
+ [Test]
46
+ public void BoundedDoubleWithZero()
47
+ {
48
+ double value = 0.0;
49
+ double max = 10.0;
50
+ double result = WallMath.BoundedDouble(max, value);
51
+ Assert.AreEqual(0.0, result);
52
+ }
53
+
54
+ [Test]
55
+ public void BoundedDoubleWithNegativeValues()
56
+ {
57
+ double value = -5.0;
58
+ double max = -1.0;
59
+ double result = WallMath.BoundedDouble(max, value);
60
+ Assert.AreEqual(value, result);
61
+ }
62
+
63
+ [Test]
64
+ public void BoundedDoubleWithMaxValue()
65
+ {
66
+ double value = double.MaxValue;
67
+ double max = double.MaxValue;
68
+ double result = WallMath.BoundedDouble(max, value);
69
+ Assert.Less(result, max);
70
+ }
71
+
72
+ [Test]
73
+ public void BoundedDoubleWithMinValue()
74
+ {
75
+ double value = double.MinValue;
76
+ double max = 0.0;
77
+ double result = WallMath.BoundedDouble(max, value);
78
+ Assert.AreEqual(value, result);
79
+ }
80
+
81
+ [Test]
82
+ public void BoundedDoubleWithPositiveInfinity()
83
+ {
84
+ double value = double.PositiveInfinity;
85
+ double max = 100.0;
86
+ double result = WallMath.BoundedDouble(max, value);
87
+ Assert.IsFalse(double.IsInfinity(result));
88
+ }
89
+
90
+ [Test]
91
+ public void BoundedDoubleWithNegativeInfinity()
92
+ {
93
+ double value = double.NegativeInfinity;
94
+ double max = 0.0;
95
+ double result = WallMath.BoundedDouble(max, value);
96
+ Assert.AreEqual(value, result);
97
+ }
98
+
99
+ [Test]
100
+ public void BoundedDoubleWithNaN()
101
+ {
102
+ double value = double.NaN;
103
+ double max = 10.0;
104
+ double result = WallMath.BoundedDouble(max, value);
105
+ Assert.IsTrue(double.IsNaN(result));
106
+ }
107
+
108
+ [Test]
109
+ public void BoundedFloatValueLessThanMax()
110
+ {
111
+ float value = 5.0f;
112
+ float max = 10.0f;
113
+ float result = WallMath.BoundedFloat(max, value);
114
+ Assert.AreEqual(value, result);
115
+ }
116
+
117
+ [Test]
118
+ public void BoundedFloatValueEqualToMax()
119
+ {
120
+ float max = 10.0f;
121
+ float value = max;
122
+ float result = WallMath.BoundedFloat(max, value);
123
+ Assert.Less(result, max);
124
+ Assert.Greater(result, 0);
125
+ }
126
+
127
+ [Test]
128
+ public void BoundedFloatValueGreaterThanMax()
129
+ {
130
+ float value = 15.0f;
131
+ float max = 10.0f;
132
+ float result = WallMath.BoundedFloat(max, value);
133
+ Assert.Less(result, value);
134
+ }
135
+
136
+ [Test]
137
+ public void BoundedFloatWithZero()
138
+ {
139
+ float value = 0.0f;
140
+ float max = 10.0f;
141
+ float result = WallMath.BoundedFloat(max, value);
142
+ Assert.AreEqual(0.0f, result);
143
+ }
144
+
145
+ [Test]
146
+ public void BoundedFloatWithNegativeValues()
147
+ {
148
+ float value = -5.0f;
149
+ float max = -1.0f;
150
+ float result = WallMath.BoundedFloat(max, value);
151
+ Assert.AreEqual(value, result);
152
+ }
153
+
154
+ [Test]
155
+ public void BoundedFloatWithMaxValue()
156
+ {
157
+ float value = float.MaxValue;
158
+ float max = float.MaxValue;
159
+ float result = WallMath.BoundedFloat(max, value);
160
+ Assert.Less(result, max);
161
+ }
162
+
163
+ [Test]
164
+ public void BoundedFloatWithMinValue()
165
+ {
166
+ float value = float.MinValue;
167
+ float max = 0.0f;
168
+ float result = WallMath.BoundedFloat(max, value);
169
+ Assert.AreEqual(value, result);
170
+ }
171
+
172
+ [Test]
173
+ public void BoundedFloatWithPositiveInfinity()
174
+ {
175
+ float value = float.PositiveInfinity;
176
+ float max = 100.0f;
177
+ float result = WallMath.BoundedFloat(max, value);
178
+ Assert.IsFalse(float.IsInfinity(result));
179
+ }
180
+
181
+ [Test]
182
+ public void BoundedFloatWithNegativeInfinity()
183
+ {
184
+ float value = float.NegativeInfinity;
185
+ float max = 0.0f;
186
+ float result = WallMath.BoundedFloat(max, value);
187
+ Assert.AreEqual(value, result);
188
+ }
189
+
190
+ [Test]
191
+ public void BoundedFloatWithNaN()
192
+ {
193
+ float value = float.NaN;
194
+ float max = 10.0f;
195
+ float result = WallMath.BoundedFloat(max, value);
196
+ Assert.IsTrue(float.IsNaN(result));
197
+ }
198
+
199
+ [Test]
200
+ public void PositiveModIntPositiveValues()
201
+ {
202
+ Assert.AreEqual(1, 1.PositiveMod(10));
203
+ Assert.AreEqual(5, 5.PositiveMod(10));
204
+ Assert.AreEqual(0, 10.PositiveMod(10));
205
+ Assert.AreEqual(1, 11.PositiveMod(10));
206
+ }
207
+
208
+ [Test]
209
+ public void PositiveModIntNegativeValues()
210
+ {
211
+ Assert.AreEqual(9, (-1).PositiveMod(10));
212
+ Assert.AreEqual(5, (-5).PositiveMod(10));
213
+ Assert.AreEqual(0, (-10).PositiveMod(10));
214
+ Assert.AreEqual(9, (-11).PositiveMod(10));
215
+ }
216
+
217
+ [Test]
218
+ public void PositiveModIntWithZeroValue()
219
+ {
220
+ Assert.AreEqual(0, 0.PositiveMod(10));
221
+ }
222
+
223
+ [Test]
224
+ public void PositiveModIntWithLargeValues()
225
+ {
226
+ int result = 1000000.PositiveMod(7);
227
+ Assert.GreaterOrEqual(result, 0);
228
+ Assert.Less(result, 7);
229
+ }
230
+
231
+ [Test]
232
+ public void PositiveModLongPositiveValues()
233
+ {
234
+ Assert.AreEqual(1L, 1L.PositiveMod(10L));
235
+ Assert.AreEqual(5L, 5L.PositiveMod(10L));
236
+ Assert.AreEqual(0L, 10L.PositiveMod(10L));
237
+ Assert.AreEqual(1L, 11L.PositiveMod(10L));
238
+ }
239
+
240
+ [Test]
241
+ public void PositiveModLongNegativeValues()
242
+ {
243
+ Assert.AreEqual(9L, (-1L).PositiveMod(10L));
244
+ Assert.AreEqual(5L, (-5L).PositiveMod(10L));
245
+ Assert.AreEqual(0L, (-10L).PositiveMod(10L));
246
+ Assert.AreEqual(9L, (-11L).PositiveMod(10L));
247
+ }
248
+
249
+ [Test]
250
+ public void PositiveModLongWithZeroValue()
251
+ {
252
+ Assert.AreEqual(0L, 0L.PositiveMod(10L));
253
+ }
254
+
255
+ [Test]
256
+ public void PositiveModLongWithLargeValues()
257
+ {
258
+ long result = 1000000000000L.PositiveMod(7L);
259
+ Assert.GreaterOrEqual(result, 0L);
260
+ Assert.Less(result, 7L);
261
+ }
262
+
263
+ [Test]
264
+ public void PositiveModFloatPositiveValues()
265
+ {
266
+ Assert.AreEqual(1f, 1f.PositiveMod(10f), Epsilon);
267
+ Assert.AreEqual(5f, 5f.PositiveMod(10f), Epsilon);
268
+ Assert.AreEqual(0f, 10f.PositiveMod(10f), Epsilon);
269
+ Assert.AreEqual(1.5f, 11.5f.PositiveMod(10f), Epsilon);
270
+ }
271
+
272
+ [Test]
273
+ public void PositiveModFloatNegativeValues()
274
+ {
275
+ Assert.AreEqual(9f, (-1f).PositiveMod(10f), Epsilon);
276
+ Assert.AreEqual(5f, (-5f).PositiveMod(10f), Epsilon);
277
+ Assert.AreEqual(0f, (-10f).PositiveMod(10f), Epsilon);
278
+ Assert.AreEqual(9.5f, (-0.5f).PositiveMod(10f), Epsilon);
279
+ }
280
+
281
+ [Test]
282
+ public void PositiveModFloatWithZeroValue()
283
+ {
284
+ Assert.AreEqual(0f, 0f.PositiveMod(10f), Epsilon);
285
+ }
286
+
287
+ [Test]
288
+ public void PositiveModFloatWithDecimalValues()
289
+ {
290
+ float result = 7.3f.PositiveMod(2.5f);
291
+ Assert.GreaterOrEqual(result, 0f);
292
+ Assert.Less(result, 2.5f);
293
+ Assert.AreEqual(2.3f, result, Epsilon);
294
+ }
295
+
296
+ [Test]
297
+ public void PositiveModDoublePositiveValues()
298
+ {
299
+ Assert.AreEqual(1.0, 1.0.PositiveMod(10.0), Epsilon);
300
+ Assert.AreEqual(5.0, 5.0.PositiveMod(10.0), Epsilon);
301
+ Assert.AreEqual(0.0, 10.0.PositiveMod(10.0), Epsilon);
302
+ Assert.AreEqual(1.5, 11.5.PositiveMod(10.0), Epsilon);
303
+ }
304
+
305
+ [Test]
306
+ public void PositiveModDoubleNegativeValues()
307
+ {
308
+ Assert.AreEqual(9.0, (-1.0).PositiveMod(10.0), Epsilon);
309
+ Assert.AreEqual(5.0, (-5.0).PositiveMod(10.0), Epsilon);
310
+ Assert.AreEqual(0.0, (-10.0).PositiveMod(10.0), Epsilon);
311
+ Assert.AreEqual(9.5, (-0.5).PositiveMod(10.0), Epsilon);
312
+ }
313
+
314
+ [Test]
315
+ public void PositiveModDoubleWithZeroValue()
316
+ {
317
+ Assert.AreEqual(0.0, 0.0.PositiveMod(10.0), Epsilon);
318
+ }
319
+
320
+ [Test]
321
+ public void PositiveModDoubleWithDecimalValues()
322
+ {
323
+ double result = 7.3.PositiveMod(2.5);
324
+ Assert.GreaterOrEqual(result, 0.0);
325
+ Assert.Less(result, 2.5);
326
+ Assert.AreEqual(2.3, result, Epsilon);
327
+ }
328
+
329
+ [Test]
330
+ public void WrappedAddValueWithinBounds()
331
+ {
332
+ int ten = 10;
333
+ int twelve = ten.WrappedAdd(2, 100);
334
+ Assert.AreEqual(10, ten);
335
+ Assert.AreEqual(12, twelve);
336
+ }
337
+
338
+ [Test]
339
+ public void WrappedAddValueExceedsBounds()
340
+ {
341
+ int ten = 10;
342
+ int two = ten.WrappedAdd(2, 10);
343
+ Assert.AreEqual(10, ten);
344
+ Assert.AreEqual(2, two);
345
+ }
346
+
347
+ [Test]
348
+ public void WrappedAddRefValueWithinBounds()
349
+ {
350
+ int toChangeToTwelve = 10;
351
+ int returned = WallMath.WrappedAdd(ref toChangeToTwelve, 2, 100);
352
+ Assert.AreEqual(12, returned);
353
+ Assert.AreEqual(12, toChangeToTwelve);
354
+ }
355
+
356
+ [Test]
357
+ public void WrappedAddRefValueExceedsBounds()
358
+ {
359
+ int toChangeToTwo = 10;
360
+ int returned = WallMath.WrappedAdd(ref toChangeToTwo, 2, 10);
361
+ Assert.AreEqual(2, returned);
362
+ Assert.AreEqual(2, toChangeToTwo);
363
+ }
364
+
365
+ [Test]
366
+ public void WrappedAddWithZeroIncrement()
367
+ {
368
+ int five = 5;
369
+ int result = five.WrappedAdd(0, 10);
370
+ Assert.AreEqual(5, result);
371
+ }
372
+
373
+ [Test]
374
+ public void WrappedAddWithNegativeIncrement()
375
+ {
376
+ int ten = 10;
377
+ int result = ten.WrappedAdd(-5, 20);
378
+ Assert.AreEqual(5, result);
379
+ }
380
+
381
+ [Test]
382
+ public void WrappedAddWithLargeIncrement()
383
+ {
384
+ int five = 5;
385
+ int result = five.WrappedAdd(25, 10);
386
+ Assert.AreEqual(0, result);
387
+ }
388
+
389
+ [Test]
390
+ public void WrappedAddExactlyAtBoundary()
391
+ {
392
+ int nine = 9;
393
+ int result = nine.WrappedAdd(1, 10);
394
+ Assert.AreEqual(0, result);
395
+ }
396
+
397
+ [Test]
398
+ public void WrappedIncrementValueWithinBounds()
399
+ {
400
+ int ten = 10;
401
+ int eleven = ten.WrappedIncrement(100);
402
+ Assert.AreEqual(11, eleven);
403
+ Assert.AreEqual(10, ten);
404
+ }
405
+
406
+ [Test]
407
+ public void WrappedIncrementValueExceedsBounds()
408
+ {
409
+ int ten = 10;
410
+ int one = ten.WrappedIncrement(10);
411
+ Assert.AreEqual(1, one);
412
+ Assert.AreEqual(10, ten);
413
+ }
414
+
415
+ [Test]
416
+ public void WrappedIncrementRefValueWithinBounds()
417
+ {
418
+ int toChangeToEleven = 10;
419
+ int returned = WallMath.WrappedIncrement(ref toChangeToEleven, 100);
420
+ Assert.AreEqual(11, returned);
421
+ Assert.AreEqual(11, toChangeToEleven);
422
+ }
423
+
424
+ [Test]
425
+ public void WrappedIncrementRefValueExceedsBounds()
426
+ {
427
+ int toChangeToOne = 10;
428
+ int returned = WallMath.WrappedIncrement(ref toChangeToOne, 10);
429
+ Assert.AreEqual(1, returned);
430
+ Assert.AreEqual(1, toChangeToOne);
431
+ }
432
+
433
+ [Test]
434
+ public void WrappedIncrementAtZero()
435
+ {
436
+ int zero = 0;
437
+ int result = zero.WrappedIncrement(10);
438
+ Assert.AreEqual(1, result);
439
+ }
440
+
441
+ [Test]
442
+ public void WrappedIncrementAtMaxMinusOne()
443
+ {
444
+ int nine = 9;
445
+ int result = nine.WrappedIncrement(10);
446
+ Assert.AreEqual(0, result);
447
+ }
448
+
449
+ [Test]
450
+ public void ClampGenericValueWithinRange()
451
+ {
452
+ float value = 0.5f;
453
+ float clamped = value.Clamp(0f, 1f);
454
+ Assert.AreEqual(0.5f, clamped);
455
+ Assert.AreEqual(0.5f, value);
456
+ }
457
+
458
+ [Test]
459
+ public void ClampGenericValueBelowMin()
460
+ {
461
+ float value = -1.0f;
462
+ float clamped = value.Clamp(0f, 1f);
463
+ Assert.AreEqual(0f, clamped);
464
+ }
465
+
466
+ [Test]
467
+ public void ClampGenericValueAboveMax()
468
+ {
469
+ float value = 1.25f;
470
+ float clamped = value.Clamp(0f, 1f);
471
+ Assert.AreEqual(1f, clamped);
472
+ Assert.AreEqual(1.25f, value);
473
+ }
474
+
475
+ [Test]
476
+ public void ClampGenericValueAtMin()
477
+ {
478
+ float value = 0f;
479
+ float clamped = value.Clamp(0f, 1f);
480
+ Assert.AreEqual(0f, clamped);
481
+ }
482
+
483
+ [Test]
484
+ public void ClampGenericValueAtMax()
485
+ {
486
+ float value = 1f;
487
+ float clamped = value.Clamp(0f, 1f);
488
+ Assert.AreEqual(1f, clamped);
489
+ }
490
+
491
+ [Test]
492
+ public void ClampGenericIntegerValues()
493
+ {
494
+ int value = 50;
495
+ int clamped = value.Clamp(0, 100);
496
+ Assert.AreEqual(50, clamped);
497
+
498
+ value = -10;
499
+ clamped = value.Clamp(0, 100);
500
+ Assert.AreEqual(0, clamped);
501
+
502
+ value = 150;
503
+ clamped = value.Clamp(0, 100);
504
+ Assert.AreEqual(100, clamped);
505
+ }
506
+
507
+ [Test]
508
+ public void ClampGenericDoubleValues()
509
+ {
510
+ double value = 0.5;
511
+ double clamped = value.Clamp(0.0, 1.0);
512
+ Assert.AreEqual(0.5, clamped);
513
+ }
514
+
515
+ [Test]
516
+ public void ClampGenericStringValues()
517
+ {
518
+ string value = "banana";
519
+ string clamped = value.Clamp("apple", "cherry");
520
+ Assert.AreEqual("banana", clamped);
521
+
522
+ value = "aardvark";
523
+ clamped = value.Clamp("apple", "cherry");
524
+ Assert.AreEqual("apple", clamped);
525
+
526
+ value = "zebra";
527
+ clamped = value.Clamp("apple", "cherry");
528
+ Assert.AreEqual("cherry", clamped);
529
+ }
530
+
531
+ [Test]
532
+ public void ClampRectPointInsideBounds()
533
+ {
534
+ Rect rect = new(Vector2.one, Vector2.one);
535
+ Vector2 inside = rect.center;
536
+ Vector2 clamped = rect.Clamp(inside);
537
+ Assert.AreEqual(inside, clamped);
538
+ }
539
+
540
+ [Test]
541
+ public void ClampRectPointOutsideRight()
542
+ {
543
+ Rect rect = new(Vector2.zero, Vector2.one);
544
+ Vector2 outside = new(5f, 0.5f);
545
+ Vector2 clamped = rect.Clamp(outside);
546
+ Assert.AreEqual(new Vector2(1f, 0.5f), clamped);
547
+ }
548
+
549
+ [Test]
550
+ public void ClampRectPointOutsideLeft()
551
+ {
552
+ Rect rect = new(Vector2.zero, Vector2.one);
553
+ Vector2 outside = new(-5f, 0.5f);
554
+ Vector2 clamped = rect.Clamp(outside);
555
+ Assert.AreEqual(new Vector2(0f, 0.5f), clamped);
556
+ }
557
+
558
+ [Test]
559
+ public void ClampRectPointOutsideTop()
560
+ {
561
+ Rect rect = new(Vector2.zero, Vector2.one);
562
+ Vector2 outside = new(0.5f, 5f);
563
+ Vector2 clamped = rect.Clamp(outside);
564
+ Assert.AreEqual(new Vector2(0.5f, 1f), clamped);
565
+ }
566
+
567
+ [Test]
568
+ public void ClampRectPointOutsideBottom()
569
+ {
570
+ Rect rect = new(Vector2.zero, Vector2.one);
571
+ Vector2 outside = new(0.5f, -5f);
572
+ Vector2 clamped = rect.Clamp(outside);
573
+ Assert.AreEqual(new Vector2(0.5f, 0f), clamped);
574
+ }
575
+
576
+ [Test]
577
+ public void ClampRectPointAtCenter()
578
+ {
579
+ Rect rect = new(Vector2.one, Vector2.one);
580
+ Vector2 clamped = rect.Clamp(rect.center);
581
+ Assert.AreEqual(rect.center, clamped);
582
+ }
583
+
584
+ [Test]
585
+ public void ClampRectPointAtCorner()
586
+ {
587
+ Rect rect = new(Vector2.zero, Vector2.one);
588
+ Vector2 topRight = new(rect.max.x, rect.max.y);
589
+ Vector2 clamped = rect.Clamp(topRight);
590
+ Assert.AreEqual(topRight, clamped);
591
+ }
592
+
593
+ [Test]
594
+ public void ClampRectWithRefParameter()
595
+ {
596
+ Rect rect = new(Vector2.one, Vector2.one);
597
+ Vector2 outside = new(rect.center.x, 100f);
598
+ Vector2 clamped = rect.Clamp(ref outside);
599
+ Assert.AreEqual(clamped, outside);
600
+ Assert.AreEqual(new Vector2(rect.center.x, 2f), clamped);
601
+ }
602
+
603
+ [Test]
604
+ public void ClampRectDiagonalOutside()
605
+ {
606
+ Rect rect = new(Vector2.zero, Vector2.one);
607
+ Vector2 outside = new(10f, 10f);
608
+ Vector2 clamped = rect.Clamp(outside);
609
+ Assert.IsTrue(
610
+ rect.Contains(clamped)
611
+ || Mathf.Approximately(clamped.x, rect.max.x)
612
+ || Mathf.Approximately(clamped.y, rect.max.y)
613
+ );
614
+ }
615
+
616
+ [Test]
617
+ public void ClampRectWithZeroDirectionFromCenter()
618
+ {
619
+ Rect rect = new(Vector2.zero, new Vector2(2f, 2f));
620
+ Vector2 point = rect.center;
621
+ Vector2 clamped = rect.Clamp(point);
622
+ Assert.AreEqual(rect.center, clamped);
623
+ }
624
+
625
+ [Test]
626
+ public void ApproximatelyWithinTolerance()
627
+ {
628
+ Assert.IsTrue(0f.Approximately(0f, 0f));
629
+ Assert.IsTrue(0f.Approximately(0.5f, 1f));
630
+ Assert.IsTrue(5f.Approximately(5.5f, 1f));
631
+ Assert.IsTrue(10f.Approximately(10.04f));
632
+ }
633
+
634
+ [Test]
635
+ public void ApproximatelyOutsideTolerance()
636
+ {
637
+ Assert.IsFalse(0.001f.Approximately(0f, 0f));
638
+ Assert.IsFalse(100f.Approximately(5f, 2.4f));
639
+ Assert.IsFalse(0f.Approximately(1f, 0.5f));
640
+ }
641
+
642
+ [Test]
643
+ public void ApproximatelyDefaultTolerance()
644
+ {
645
+ Assert.IsTrue(0.001f.Approximately(0.0001f));
646
+ Assert.IsTrue(1.0f.Approximately(1.04f));
647
+ Assert.IsFalse(1.0f.Approximately(1.5f));
648
+ }
649
+
650
+ [Test]
651
+ public void ApproximatelyWithNegativeValues()
652
+ {
653
+ Assert.IsTrue((-5f).Approximately(-5.04f));
654
+ Assert.IsFalse((-5f).Approximately(-10f));
655
+ }
656
+
657
+ [Test]
658
+ public void ApproximatelyWithZeroTolerance()
659
+ {
660
+ Assert.IsTrue(1f.Approximately(1f, 0f));
661
+ Assert.IsFalse(1f.Approximately(1.0001f, 0f));
662
+ }
663
+
664
+ [Test]
665
+ public void ApproximatelyWithNegativeTolerance()
666
+ {
667
+ Assert.IsTrue(5f.Approximately(5.5f, -1f));
668
+ Assert.IsFalse(5f.Approximately(10f, -1f));
669
+ }
670
+
671
+ [Test]
672
+ public void ApproximatelyWithInfinity()
673
+ {
674
+ Assert.IsFalse(float.PositiveInfinity.Approximately(float.PositiveInfinity, 1f));
675
+ Assert.IsFalse(float.PositiveInfinity.Approximately(100f, 1000f));
676
+ Assert.IsFalse(100f.Approximately(float.PositiveInfinity, 1000f));
677
+ Assert.IsFalse(float.NegativeInfinity.Approximately(float.NegativeInfinity, 1f));
678
+ }
679
+
680
+ [Test]
681
+ public void ApproximatelyWithNaN()
682
+ {
683
+ Assert.IsFalse(float.NaN.Approximately(0f, 1f));
684
+ Assert.IsFalse(0f.Approximately(float.NaN, 1f));
685
+ }
686
+
687
+ [Test]
688
+ public void ApproximatelyRandomValues()
689
+ {
690
+ for (int i = 0; i < TestIterations; ++i)
691
+ {
692
+ float target = PRNG.Instance.NextFloat(-1_000, 1_000);
693
+ float delta = PRNG.Instance.NextFloat(1f, 10f);
694
+
695
+ float insideOffset = delta * PRNG.Instance.NextFloat();
696
+ if (PRNG.Instance.NextBool())
697
+ {
698
+ insideOffset *= -1;
699
+ }
700
+
701
+ float inside = target + insideOffset;
702
+ Assert.IsTrue(
703
+ target.Approximately(inside, delta),
704
+ $"Target {target} is not close enough to {inside} with a delta of {delta}."
705
+ );
706
+
707
+ float outsideOffset = delta * PRNG.Instance.NextFloat(1.001f, 10f);
708
+ if (PRNG.Instance.NextBool())
709
+ {
710
+ outsideOffset *= -1;
711
+ }
712
+
713
+ float outside = target + outsideOffset;
714
+ Assert.IsFalse(
715
+ target.Approximately(outside, delta),
716
+ $"Target {target} was unexpectedly close to {outside} with a delta of {delta}."
717
+ );
718
+ }
719
+ }
720
+
721
+ [Test]
722
+ public void ClampRectInsideRandom()
723
+ {
724
+ for (int i = 0; i < TestIterations; ++i)
725
+ {
726
+ Vector2 position = PRNG.Instance.NextVector2InRange(10f);
727
+
728
+ Vector2 size;
729
+ do
730
+ {
731
+ size = PRNG.Instance.NextVector2InRange(10f);
732
+ } while (size.x < 0 || size.y < 0);
733
+
734
+ Rect rect = new(position, size);
735
+
736
+ Vector2 inside = new(
737
+ PRNG.Instance.NextFloat(rect.min.x, rect.max.x),
738
+ PRNG.Instance.NextFloat(rect.min.y, rect.max.y)
739
+ );
740
+ Assert.IsTrue(rect.Contains(inside), $"Rect {rect} does not contain {inside}.");
741
+ Vector2 clamped = rect.Clamp(inside);
742
+ Assert.AreEqual(inside, clamped);
743
+ }
744
+ }
745
+
746
+ [Test]
747
+ public void ClampRectOutsideRandom()
748
+ {
749
+ Rect rect = new(Vector2.one, Vector2.one);
750
+ for (int i = 0; i < TestIterations; ++i)
751
+ {
752
+ Vector2 outside;
753
+ do
754
+ {
755
+ outside = PRNG.Instance.NextVector2InRange(10f, rect.center);
756
+ } while (rect.Contains(outside));
757
+
758
+ Vector2 originalOutside = outside;
759
+ Vector2 clamped = rect.Clamp(ref outside);
760
+ Assert.AreNotEqual(originalOutside, clamped);
761
+ Assert.AreEqual(clamped, outside);
762
+
763
+ const float shrinkScaleToAccountForPrecision = 0.99f;
764
+ Vector2 delta = rect.center - clamped;
765
+ delta *= shrinkScaleToAccountForPrecision;
766
+ clamped = rect.center + delta;
767
+ Assert.IsTrue(
768
+ rect.Contains(clamped),
769
+ $"Expected rect {rect} to contain {clamped}, but it did not."
770
+ );
771
+ }
772
+ }
773
+
774
+ [Test]
775
+ public void BoundedDoubleConsistentBehavior()
776
+ {
777
+ for (int i = 0; i < 1000; ++i)
778
+ {
779
+ double max = PRNG.Instance.NextDouble(1.0, 1000.0);
780
+ double value = PRNG.Instance.NextDouble(0.0, 1500.0);
781
+ double result = WallMath.BoundedDouble(max, value);
782
+
783
+ if (value < max)
784
+ {
785
+ Assert.AreEqual(value, result);
786
+ }
787
+ else
788
+ {
789
+ Assert.Less(result, value);
790
+ }
791
+ }
792
+ }
793
+
794
+ [Test]
795
+ public void BoundedFloatConsistentBehavior()
796
+ {
797
+ for (int i = 0; i < 1000; ++i)
798
+ {
799
+ float max = PRNG.Instance.NextFloat(1f, 1000f);
800
+ float value = PRNG.Instance.NextFloat(0f, 1500f);
801
+ float result = WallMath.BoundedFloat(max, value);
802
+
803
+ if (value < max)
804
+ {
805
+ Assert.AreEqual(value, result);
806
+ }
807
+ else
808
+ {
809
+ Assert.Less(result, value);
810
+ }
811
+ }
812
+ }
813
+
814
+ [Test]
815
+ public void PositiveModRandomInt()
816
+ {
817
+ for (int i = 0; i < 1000; ++i)
818
+ {
819
+ int value = PRNG.Instance.Next(-10000, 10000);
820
+ int max = PRNG.Instance.Next(1, 1000);
821
+ int result = value.PositiveMod(max);
822
+
823
+ Assert.GreaterOrEqual(result, 0);
824
+ Assert.Less(result, max);
825
+ }
826
+ }
827
+
828
+ [Test]
829
+ public void PositiveModRandomLong()
830
+ {
831
+ for (int i = 0; i < 1000; ++i)
832
+ {
833
+ long value = PRNG.Instance.NextLong(-10000, 10000);
834
+ long max = PRNG.Instance.NextLong(1, 1000);
835
+ long result = value.PositiveMod(max);
836
+
837
+ Assert.GreaterOrEqual(result, 0L);
838
+ Assert.Less(result, max);
839
+ }
840
+ }
841
+
842
+ [Test]
843
+ public void PositiveModRandomFloat()
844
+ {
845
+ for (int i = 0; i < 1000; ++i)
846
+ {
847
+ float value = PRNG.Instance.NextFloat(-10000f, 10000f);
848
+ float max = PRNG.Instance.NextFloat(1f, 1000f);
849
+ float result = value.PositiveMod(max);
850
+
851
+ Assert.GreaterOrEqual(result, 0f);
852
+ Assert.Less(result, max);
853
+ }
854
+ }
855
+
856
+ [Test]
857
+ public void PositiveModRandomDouble()
858
+ {
859
+ for (int i = 0; i < 1000; ++i)
860
+ {
861
+ double value = PRNG.Instance.NextDouble(-10000.0, 10000.0);
862
+ double max = PRNG.Instance.NextDouble(1.0, 1000.0);
863
+ double result = value.PositiveMod(max);
864
+
865
+ Assert.GreaterOrEqual(result, 0.0);
866
+ Assert.Less(result, max);
867
+ }
868
+ }
869
+
870
+ [Test]
871
+ public void WrappedAddMultipleWraps()
872
+ {
873
+ int value = 5;
874
+ int result = value.WrappedAdd(105, 10);
875
+ Assert.AreEqual(0, result);
876
+ }
877
+
878
+ [Test]
879
+ public void WrappedIncrementMultipleTimes()
880
+ {
881
+ int value = 9;
882
+ for (int i = 0; i < 10; ++i)
883
+ {
884
+ value = value.WrappedIncrement(10);
885
+ }
886
+ Assert.AreEqual(9, value);
887
+ }
888
+
889
+ [Test]
890
+ public void ClampGenericWithEqualMinMax()
891
+ {
892
+ float value = 5f;
893
+ float clamped = value.Clamp(10f, 10f);
894
+ Assert.AreEqual(10f, clamped);
895
+ }
896
+
897
+ [Test]
898
+ public void ClampRectWithVerySmallRect()
899
+ {
900
+ Rect rect = new(Vector2.zero, new Vector2(0.001f, 0.001f));
901
+ Vector2 outside = new(10f, 10f);
902
+ Vector2 clamped = rect.Clamp(outside);
903
+ Assert.LessOrEqual(clamped.x, rect.max.x);
904
+ Assert.LessOrEqual(clamped.y, rect.max.y);
905
+ }
906
+
907
+ [Test]
908
+ public void ClampRectWithNegativeCoordinates()
909
+ {
910
+ Rect rect = new(new Vector2(-10f, -10f), new Vector2(5f, 5f));
911
+ Vector2 outside = new(-20f, -20f);
912
+ Vector2 clamped = rect.Clamp(outside);
913
+ Assert.IsTrue(Mathf.Approximately(clamped.x, rect.min.x) || rect.Contains(clamped));
914
+ }
915
+
916
+ [Test]
917
+ public void BoundedDoubleWithVerySmallValues()
918
+ {
919
+ double value = 0.000001;
920
+ double max = 0.00001;
921
+ double result = WallMath.BoundedDouble(max, value);
922
+ Assert.AreEqual(value, result);
923
+ }
924
+
925
+ [Test]
926
+ public void BoundedFloatWithVerySmallValues()
927
+ {
928
+ float value = 0.000001f;
929
+ float max = 0.00001f;
930
+ float result = WallMath.BoundedFloat(max, value);
931
+ Assert.AreEqual(value, result);
932
+ }
933
+
934
+ [Test]
935
+ public void BoundedDoubleWithMaxAsNaN()
936
+ {
937
+ double value = 5.0;
938
+ double max = double.NaN;
939
+ double result = WallMath.BoundedDouble(max, value);
940
+ Assert.IsTrue(double.IsNaN(result));
941
+ }
942
+
943
+ [Test]
944
+ public void BoundedFloatWithMaxAsNaN()
945
+ {
946
+ float value = 5.0f;
947
+ float max = float.NaN;
948
+ float result = WallMath.BoundedFloat(max, value);
949
+ Assert.IsTrue(float.IsNaN(result));
950
+ }
951
+
952
+ [Test]
953
+ public void BoundedDoubleWithMaxAsInfinity()
954
+ {
955
+ double value = 100.0;
956
+ double max = double.PositiveInfinity;
957
+ double result = WallMath.BoundedDouble(max, value);
958
+ Assert.AreEqual(value, result);
959
+ }
960
+
961
+ [Test]
962
+ public void BoundedFloatWithMaxAsInfinity()
963
+ {
964
+ float value = 100.0f;
965
+ float max = float.PositiveInfinity;
966
+ float result = WallMath.BoundedFloat(max, value);
967
+ Assert.AreEqual(value, result);
968
+ }
969
+
970
+ [Test]
971
+ public void PositiveModIntWithOne()
972
+ {
973
+ Assert.AreEqual(0, 5.PositiveMod(1));
974
+ Assert.AreEqual(0, (-5).PositiveMod(1));
975
+ }
976
+
977
+ [Test]
978
+ public void PositiveModLongWithOne()
979
+ {
980
+ Assert.AreEqual(0L, 5L.PositiveMod(1L));
981
+ Assert.AreEqual(0L, (-5L).PositiveMod(1L));
982
+ }
983
+
984
+ [Test]
985
+ public void PositiveModFloatWithOne()
986
+ {
987
+ Assert.AreEqual(0f, 5.5f.PositiveMod(1f), Epsilon);
988
+ Assert.AreEqual(0f, (-5.5f).PositiveMod(1f), Epsilon);
989
+ }
990
+
991
+ [Test]
992
+ public void PositiveModDoubleWithOne()
993
+ {
994
+ Assert.AreEqual(0.0, 5.5.PositiveMod(1.0), Epsilon);
995
+ Assert.AreEqual(0.0, (-5.5).PositiveMod(1.0), Epsilon);
996
+ }
997
+
998
+ [Test]
999
+ public void PositiveModIntWithMaxValue()
1000
+ {
1001
+ int result = int.MaxValue.PositiveMod(100);
1002
+ Assert.GreaterOrEqual(result, 0);
1003
+ Assert.Less(result, 100);
1004
+ }
1005
+
1006
+ [Test]
1007
+ public void PositiveModLongWithMaxValue()
1008
+ {
1009
+ long result = long.MaxValue.PositiveMod(100L);
1010
+ Assert.GreaterOrEqual(result, 0L);
1011
+ Assert.Less(result, 100L);
1012
+ }
1013
+
1014
+ [Test]
1015
+ public void PositiveModIntWithMinValue()
1016
+ {
1017
+ int result = int.MinValue.PositiveMod(100);
1018
+ Assert.GreaterOrEqual(result, 0);
1019
+ Assert.Less(result, 100);
1020
+ }
1021
+
1022
+ [Test]
1023
+ public void PositiveModLongWithMinValue()
1024
+ {
1025
+ long result = long.MinValue.PositiveMod(100L);
1026
+ Assert.GreaterOrEqual(result, 0L);
1027
+ Assert.Less(result, 100L);
1028
+ }
1029
+
1030
+ [Test]
1031
+ public void WrappedAddWithNegativeMax()
1032
+ {
1033
+ int value = 5;
1034
+ int result = value.WrappedAdd(3, -10);
1035
+ Assert.GreaterOrEqual(result, -10);
1036
+ Assert.Less(result, 0);
1037
+ }
1038
+
1039
+ [Test]
1040
+ public void WrappedAddWithVeryLargeIncrement()
1041
+ {
1042
+ int value = 5;
1043
+ int result = value.WrappedAdd(int.MaxValue - 10, 100);
1044
+ Assert.GreaterOrEqual(result, 0);
1045
+ Assert.Less(result, 100);
1046
+ }
1047
+
1048
+ [Test]
1049
+ public void WrappedAddWithVeryLargeNegativeIncrement()
1050
+ {
1051
+ int value = 50;
1052
+ int result = value.WrappedAdd(int.MinValue + 100, 100);
1053
+ Assert.GreaterOrEqual(result, 0);
1054
+ Assert.Less(result, 100);
1055
+ }
1056
+
1057
+ [Test]
1058
+ public void WrappedAddNegativeValuePositiveIncrement()
1059
+ {
1060
+ int value = 5;
1061
+ int result = value.WrappedAdd(-10, 20);
1062
+ Assert.AreEqual(15, result);
1063
+ }
1064
+
1065
+ [Test]
1066
+ public void WrappedIncrementFromZero()
1067
+ {
1068
+ int value = 0;
1069
+ int result = WallMath.WrappedIncrement(ref value, 5);
1070
+ Assert.AreEqual(1, result);
1071
+ Assert.AreEqual(1, value);
1072
+ }
1073
+
1074
+ [Test]
1075
+ public void WrappedIncrementWrapToZero()
1076
+ {
1077
+ int value = 4;
1078
+ int result = WallMath.WrappedIncrement(ref value, 5);
1079
+ Assert.AreEqual(0, result);
1080
+ Assert.AreEqual(0, value);
1081
+ }
1082
+
1083
+ [Test]
1084
+ public void ClampGenericWithReversedMinMax()
1085
+ {
1086
+ float value = 5f;
1087
+ float clamped = value.Clamp(10f, 0f);
1088
+ Assert.AreEqual(10f, clamped);
1089
+ }
1090
+
1091
+ [Test]
1092
+ public void ClampGenericNegativeRange()
1093
+ {
1094
+ int value = -5;
1095
+ int clamped = value.Clamp(-10, -1);
1096
+ Assert.AreEqual(-5, clamped);
1097
+
1098
+ value = -15;
1099
+ clamped = value.Clamp(-10, -1);
1100
+ Assert.AreEqual(-10, clamped);
1101
+
1102
+ value = 0;
1103
+ clamped = value.Clamp(-10, -1);
1104
+ Assert.AreEqual(-1, clamped);
1105
+ }
1106
+
1107
+ [Test]
1108
+ public void ClampRectPointOnEdge()
1109
+ {
1110
+ Rect rect = new(Vector2.zero, Vector2.one);
1111
+ Vector2 leftEdge = new(0f, 0.5f);
1112
+ Vector2 clamped = rect.Clamp(leftEdge);
1113
+ Assert.AreEqual(leftEdge, clamped);
1114
+
1115
+ Vector2 rightEdge = new(1f, 0.5f);
1116
+ clamped = rect.Clamp(rightEdge);
1117
+ Assert.AreEqual(rightEdge, clamped);
1118
+
1119
+ Vector2 topEdge = new(0.5f, 1f);
1120
+ clamped = rect.Clamp(topEdge);
1121
+ Assert.AreEqual(topEdge, clamped);
1122
+
1123
+ Vector2 bottomEdge = new(0.5f, 0f);
1124
+ clamped = rect.Clamp(bottomEdge);
1125
+ Assert.AreEqual(bottomEdge, clamped);
1126
+ }
1127
+
1128
+ [Test]
1129
+ public void ClampRectAllCorners()
1130
+ {
1131
+ Rect rect = new(Vector2.zero, new Vector2(10f, 10f));
1132
+
1133
+ Vector2 bottomLeft = rect.min;
1134
+ Assert.AreEqual(bottomLeft, rect.Clamp(bottomLeft));
1135
+
1136
+ Vector2 bottomRight = new(rect.max.x, rect.min.y);
1137
+ Assert.AreEqual(bottomRight, rect.Clamp(bottomRight));
1138
+
1139
+ Vector2 topLeft = new(rect.min.x, rect.max.y);
1140
+ Assert.AreEqual(topLeft, rect.Clamp(topLeft));
1141
+
1142
+ Vector2 topRight = rect.max;
1143
+ Assert.AreEqual(topRight, rect.Clamp(topRight));
1144
+ }
1145
+
1146
+ [Test]
1147
+ public void ClampRectDiagonalAllDirections()
1148
+ {
1149
+ Rect rect = new(Vector2.zero, Vector2.one);
1150
+
1151
+ Vector2 topRightOutside = new(10f, 10f);
1152
+ Vector2 clamped = rect.Clamp(topRightOutside);
1153
+ Assert.LessOrEqual(clamped.x, rect.max.x);
1154
+ Assert.LessOrEqual(clamped.y, rect.max.y);
1155
+
1156
+ Vector2 topLeftOutside = new(-10f, 10f);
1157
+ clamped = rect.Clamp(topLeftOutside);
1158
+ Assert.GreaterOrEqual(clamped.x, rect.min.x);
1159
+ Assert.LessOrEqual(clamped.y, rect.max.y);
1160
+
1161
+ Vector2 bottomRightOutside = new(10f, -10f);
1162
+ clamped = rect.Clamp(bottomRightOutside);
1163
+ Assert.LessOrEqual(clamped.x, rect.max.x);
1164
+ Assert.GreaterOrEqual(clamped.y, rect.min.y);
1165
+
1166
+ Vector2 bottomLeftOutside = new(-10f, -10f);
1167
+ clamped = rect.Clamp(bottomLeftOutside);
1168
+ Assert.GreaterOrEqual(clamped.x, rect.min.x);
1169
+ Assert.GreaterOrEqual(clamped.y, rect.min.y);
1170
+ }
1171
+
1172
+ [Test]
1173
+ public void ClampRectWithZeroSize()
1174
+ {
1175
+ Rect rect = new(Vector2.one, Vector2.zero);
1176
+ Vector2 outside = new(10f, 10f);
1177
+ Vector2 clamped = rect.Clamp(outside);
1178
+ Assert.AreEqual(rect.center, clamped);
1179
+ }
1180
+
1181
+ [Test]
1182
+ public void ClampRectWithNegativeSize()
1183
+ {
1184
+ Rect rect = new(Vector2.zero, new Vector2(-5f, -5f));
1185
+ Vector2 outside = new(10f, 10f);
1186
+ Vector2 clamped = rect.Clamp(outside);
1187
+ Assert.LessOrEqual(clamped.x, rect.max.x);
1188
+ Assert.LessOrEqual(clamped.y, rect.max.y);
1189
+ }
1190
+
1191
+ [Test]
1192
+ public void ApproximatelyExactMatch()
1193
+ {
1194
+ Assert.IsTrue(5f.Approximately(5f, 0f));
1195
+ Assert.IsTrue(0f.Approximately(0f, 0f));
1196
+ Assert.IsTrue((-5f).Approximately(-5f, 0f));
1197
+ }
1198
+
1199
+ [Test]
1200
+ public void ApproximatelyExactBoundary()
1201
+ {
1202
+ Assert.IsTrue(0f.Approximately(1f, 1f));
1203
+ Assert.IsTrue(1f.Approximately(0f, 1f));
1204
+ Assert.IsFalse(0f.Approximately(1.001f, 1f));
1205
+ Assert.IsFalse(1.001f.Approximately(0f, 1f));
1206
+ }
1207
+
1208
+ [Test]
1209
+ public void ApproximatelyVeryLargeValues()
1210
+ {
1211
+ Assert.IsTrue(1000000f.Approximately(1000001f, 2f));
1212
+ Assert.IsFalse(1000000f.Approximately(1000010f, 2f));
1213
+ }
1214
+
1215
+ [Test]
1216
+ public void ApproximatelyVerySmallDifferences()
1217
+ {
1218
+ Assert.IsTrue(0.0001f.Approximately(0.0002f, 0.0001f));
1219
+ Assert.IsFalse(0.0001f.Approximately(0.0003f, 0.0001f));
1220
+ }
1221
+
1222
+ [Test]
1223
+ public void ApproximatelyMixedSigns()
1224
+ {
1225
+ Assert.IsTrue(1f.Approximately(-1f, 2.5f));
1226
+ Assert.IsFalse(1f.Approximately(-1f, 1.5f));
1227
+ }
1228
+
1229
+ [Test]
1230
+ public void ApproximatelyDoubleWithinTolerance()
1231
+ {
1232
+ Assert.IsTrue(0.0.Approximately(0.0, 0.0));
1233
+ Assert.IsTrue(0.0.Approximately(0.5, 1.0));
1234
+ Assert.IsTrue(5.0.Approximately(5.5, 1.0));
1235
+ Assert.IsTrue(10.0.Approximately(10.04));
1236
+ }
1237
+
1238
+ [Test]
1239
+ public void ApproximatelyDoubleOutsideTolerance()
1240
+ {
1241
+ Assert.IsFalse(0.001.Approximately(0.0, 0.0));
1242
+ Assert.IsFalse(100.0.Approximately(5.0, 2.4));
1243
+ Assert.IsFalse(0.0.Approximately(1.0, 0.5));
1244
+ }
1245
+
1246
+ [Test]
1247
+ public void ApproximatelyDoubleDefaultTolerance()
1248
+ {
1249
+ Assert.IsTrue(0.001.Approximately(0.0001));
1250
+ Assert.IsTrue(1.0.Approximately(1.04));
1251
+ Assert.IsFalse(1.0.Approximately(1.5));
1252
+ }
1253
+
1254
+ [Test]
1255
+ public void ApproximatelyDoubleWithNegativeValues()
1256
+ {
1257
+ Assert.IsTrue((-5.0).Approximately(-5.04));
1258
+ Assert.IsFalse((-5.0).Approximately(-10.0));
1259
+ }
1260
+
1261
+ [Test]
1262
+ public void ApproximatelyDoubleWithInfinity()
1263
+ {
1264
+ Assert.IsFalse(double.PositiveInfinity.Approximately(double.PositiveInfinity, 1.0));
1265
+ Assert.IsFalse(double.PositiveInfinity.Approximately(100.0, 1000.0));
1266
+ Assert.IsFalse(100.0.Approximately(double.PositiveInfinity, 1000.0));
1267
+ Assert.IsFalse(double.NegativeInfinity.Approximately(double.NegativeInfinity, 1.0));
1268
+ }
1269
+
1270
+ [Test]
1271
+ public void ApproximatelyDoubleWithNaN()
1272
+ {
1273
+ Assert.IsFalse(double.NaN.Approximately(0.0, 1.0));
1274
+ Assert.IsFalse(0.0.Approximately(double.NaN, 1.0));
1275
+ }
1276
+
1277
+ [Test]
1278
+ public void Vector2ApproximatelyMagnitudeWithinTolerance()
1279
+ {
1280
+ Vector2 lhs = Vector2.zero;
1281
+ Vector2 rhs = new(0.0005f, -0.0004f);
1282
+ Assert.IsTrue(lhs.Approximately(rhs));
1283
+ }
1284
+
1285
+ [Test]
1286
+ public void Vector2ApproximatelyMagnitudeOutsideTolerance()
1287
+ {
1288
+ Vector2 lhs = Vector2.zero;
1289
+ Vector2 rhs = new(0.005f, 0f);
1290
+ Assert.IsFalse(lhs.Approximately(rhs));
1291
+ }
1292
+
1293
+ [Test]
1294
+ public void Vector2ApproximatelyComponentMode()
1295
+ {
1296
+ Vector2 lhs = new(1f, 2f);
1297
+ Vector2 rhs = new(1.0005f, 2.0005f);
1298
+ Assert.IsTrue(
1299
+ lhs.Approximately(
1300
+ rhs,
1301
+ tolerance: 0.001f,
1302
+ mode: WallMath.VectorApproximationMode.Components
1303
+ )
1304
+ );
1305
+
1306
+ Vector2 far = new(1.01f, 2f);
1307
+ Assert.IsFalse(
1308
+ lhs.Approximately(
1309
+ far,
1310
+ tolerance: 0.001f,
1311
+ mode: WallMath.VectorApproximationMode.Components
1312
+ )
1313
+ );
1314
+ }
1315
+
1316
+ [Test]
1317
+ public void Vector2ApproximatelyHonorsDelta()
1318
+ {
1319
+ Vector2 lhs = Vector2.zero;
1320
+ Vector2 rhs = new(0f, 0.002f);
1321
+
1322
+ Assert.IsFalse(lhs.Approximately(rhs, tolerance: 0.001f));
1323
+ Assert.IsTrue(lhs.Approximately(rhs, tolerance: 0.001f, delta: 0.0011f));
1324
+ }
1325
+
1326
+ [Test]
1327
+ public void Vector2ApproximatelyNonFiniteIsFalse()
1328
+ {
1329
+ Vector2 lhs = new(float.NaN, 0f);
1330
+ Assert.IsFalse(lhs.Approximately(Vector2.zero));
1331
+ }
1332
+
1333
+ [Test]
1334
+ public void Vector3ApproximatelyMagnitudeWithinTolerance()
1335
+ {
1336
+ Vector3 lhs = Vector3.zero;
1337
+ Vector3 rhs = new(0.0005f, -0.0004f, 0.0002f);
1338
+ Assert.IsTrue(lhs.Approximately(rhs));
1339
+ }
1340
+
1341
+ [Test]
1342
+ public void Vector3ApproximatelyComponentMode()
1343
+ {
1344
+ Vector3 lhs = new(1f, 2f, 3f);
1345
+ Vector3 rhs = new(1.0005f, 2.0005f, 2.9995f);
1346
+ Assert.IsTrue(
1347
+ lhs.Approximately(
1348
+ rhs,
1349
+ tolerance: 0.001f,
1350
+ mode: WallMath.VectorApproximationMode.Components
1351
+ )
1352
+ );
1353
+
1354
+ Vector3 far = new(1f, 2.01f, 3f);
1355
+ Assert.IsFalse(
1356
+ lhs.Approximately(
1357
+ far,
1358
+ tolerance: 0.001f,
1359
+ mode: WallMath.VectorApproximationMode.Components
1360
+ )
1361
+ );
1362
+ }
1363
+
1364
+ [Test]
1365
+ public void Vector3ApproximatelyNonFiniteIsFalse()
1366
+ {
1367
+ Vector3 lhs = new(float.PositiveInfinity, 0f, 0f);
1368
+ Assert.IsFalse(lhs.Approximately(Vector3.zero));
1369
+ }
1370
+
1371
+ [Test]
1372
+ public void ColorApproximatelyWithinTolerance()
1373
+ {
1374
+ Color lhs = new(0.5f, 0.4f, 0.25f, 0.75f);
1375
+ Color rhs = new(0.502f, 0.398f, 0.249f, 0.749f);
1376
+ Assert.IsTrue(lhs.Approximately(rhs, tolerance: 0.01f));
1377
+ }
1378
+
1379
+ [Test]
1380
+ public void ColorApproximatelyHonorsDelta()
1381
+ {
1382
+ Color lhs = Color.white;
1383
+ Color rhs = new(0.95f, 0.95f, 0.95f, 0.95f);
1384
+
1385
+ Assert.IsFalse(lhs.Approximately(rhs, tolerance: 0.02f));
1386
+ Assert.IsTrue(lhs.Approximately(rhs, tolerance: 0.02f, delta: 0.03f));
1387
+ }
1388
+
1389
+ [Test]
1390
+ public void ColorApproximatelyCanIgnoreAlpha()
1391
+ {
1392
+ Color lhs = new(0.1f, 0.2f, 0.3f, 0f);
1393
+ Color rhs = new(0.1f, 0.2f, 0.3f, 1f);
1394
+
1395
+ Assert.IsFalse(lhs.Approximately(rhs));
1396
+ Assert.IsTrue(lhs.Approximately(rhs, includeAlpha: false));
1397
+ }
1398
+
1399
+ [Test]
1400
+ public void ColorApproximatelyNonFiniteIsFalse()
1401
+ {
1402
+ Color lhs = new(float.NaN, 0f, 0f, 1f);
1403
+ Assert.IsFalse(lhs.Approximately(Color.black));
1404
+ }
1405
+
1406
+ [Test]
1407
+ public void Color32ApproximatelyUsesByteTolerance()
1408
+ {
1409
+ Color32 lhs = new(10, 20, 30, 40);
1410
+ Color32 rhs = new(12, 18, 31, 39);
1411
+
1412
+ Assert.IsFalse(lhs.Approximately(rhs, tolerance: 1));
1413
+ Assert.IsTrue(lhs.Approximately(rhs, tolerance: 3));
1414
+ }
1415
+
1416
+ [Test]
1417
+ public void BoundedDoubleWithSameValue()
1418
+ {
1419
+ for (int i = 0; i < 100; ++i)
1420
+ {
1421
+ double value = PRNG.Instance.NextDouble(-1000.0, 1000.0);
1422
+ double result = WallMath.BoundedDouble(value, value);
1423
+ Assert.Less(result, value);
1424
+ }
1425
+ }
1426
+
1427
+ [Test]
1428
+ public void BoundedFloatWithSameValue()
1429
+ {
1430
+ for (int i = 0; i < 100; ++i)
1431
+ {
1432
+ float value = PRNG.Instance.NextFloat(-1000f, 1000f);
1433
+ float result = WallMath.BoundedFloat(value, value);
1434
+ Assert.Less(result, value);
1435
+ }
1436
+ }
1437
+
1438
+ [Test]
1439
+ public void WrappedAddRefConsistentWithNonRef()
1440
+ {
1441
+ for (int i = 0; i < 100; ++i)
1442
+ {
1443
+ int value = PRNG.Instance.Next(0, 100);
1444
+ int increment = PRNG.Instance.Next(-200, 200);
1445
+ int max = PRNG.Instance.Next(10, 50);
1446
+
1447
+ int nonRefResult = value.WrappedAdd(increment, max);
1448
+
1449
+ int refValue = value;
1450
+ int refResult = WallMath.WrappedAdd(ref refValue, increment, max);
1451
+
1452
+ Assert.AreEqual(nonRefResult, refResult);
1453
+ Assert.AreEqual(refResult, refValue);
1454
+ }
1455
+ }
1456
+
1457
+ [Test]
1458
+ public void WrappedIncrementRefConsistentWithNonRef()
1459
+ {
1460
+ for (int i = 0; i < 100; ++i)
1461
+ {
1462
+ int value = PRNG.Instance.Next(0, 100);
1463
+ int max = PRNG.Instance.Next(10, 50);
1464
+
1465
+ int nonRefResult = value.WrappedIncrement(max);
1466
+
1467
+ int refValue = value;
1468
+ int refResult = WallMath.WrappedIncrement(ref refValue, max);
1469
+
1470
+ Assert.AreEqual(nonRefResult, refResult);
1471
+ Assert.AreEqual(refResult, refValue);
1472
+ }
1473
+ }
1474
+
1475
+ [Test]
1476
+ public void ClampGenericWithMultipleTypes()
1477
+ {
1478
+ byte byteVal = 200;
1479
+ Assert.AreEqual((byte)200, byteVal.Clamp((byte)0, (byte)255));
1480
+ Assert.AreEqual((byte)100, byteVal.Clamp((byte)0, (byte)100));
1481
+
1482
+ long longVal = 1000000000000L;
1483
+ Assert.AreEqual(1000000000000L, longVal.Clamp(0L, long.MaxValue));
1484
+ Assert.AreEqual(100L, longVal.Clamp(0L, 100L));
1485
+
1486
+ decimal decimalVal = 5.5m;
1487
+ Assert.AreEqual(5.5m, decimalVal.Clamp(0m, 10m));
1488
+ Assert.AreEqual(10m, decimalVal.Clamp(10m, 20m));
1489
+ }
1490
+
1491
+ [Test]
1492
+ public void ClampRectRefModifiesParameter()
1493
+ {
1494
+ Rect rect = new(Vector2.zero, Vector2.one);
1495
+ Vector2 outside = new(10f, 10f);
1496
+ Vector2 original = outside;
1497
+
1498
+ Vector2 result = rect.Clamp(ref outside);
1499
+
1500
+ Assert.AreNotEqual(original, outside);
1501
+ Assert.AreEqual(result, outside);
1502
+ Assert.LessOrEqual(outside.x, rect.max.x);
1503
+ Assert.LessOrEqual(outside.y, rect.max.y);
1504
+ }
1505
+
1506
+ [Test]
1507
+ public void ClampRectNonRefDoesNotModifyParameter()
1508
+ {
1509
+ Rect rect = new(Vector2.zero, Vector2.one);
1510
+ Vector2 outside = new(10f, 10f);
1511
+ Vector2 original = outside;
1512
+
1513
+ Vector2 result = rect.Clamp(outside);
1514
+
1515
+ Assert.AreEqual(original, outside);
1516
+ Assert.AreNotEqual(result, outside);
1517
+ }
1518
+
1519
+ [Test]
1520
+ public void PositiveModSymmetryCheck()
1521
+ {
1522
+ for (int i = 1; i < 50; ++i)
1523
+ {
1524
+ int positiveResult = i.PositiveMod(10);
1525
+ int negativeResult = (-i).PositiveMod(10);
1526
+
1527
+ Assert.GreaterOrEqual(positiveResult, 0);
1528
+ Assert.Less(positiveResult, 10);
1529
+ Assert.GreaterOrEqual(negativeResult, 0);
1530
+ Assert.Less(negativeResult, 10);
1531
+
1532
+ Assert.AreEqual((positiveResult + negativeResult) % 10, 0);
1533
+ }
1534
+ }
1535
+
1536
+ [Test]
1537
+ public void WrappedAddCommutativeWithPositiveMod()
1538
+ {
1539
+ for (int i = 0; i < 100; ++i)
1540
+ {
1541
+ int value = PRNG.Instance.Next(-1000, 1000);
1542
+ int increment = PRNG.Instance.Next(-1000, 1000);
1543
+ int max = PRNG.Instance.Next(10, 100);
1544
+
1545
+ int wrappedResult = value.WrappedAdd(increment, max);
1546
+ int manualResult = (value + increment).PositiveMod(max);
1547
+
1548
+ Assert.AreEqual(manualResult, wrappedResult);
1549
+ }
1550
+ }
1551
+
1552
+ [Test]
1553
+ public void TotalEqualsFloatNaNBothNaN()
1554
+ {
1555
+ Assert.IsTrue(float.NaN.TotalEquals(float.NaN));
1556
+ }
1557
+
1558
+ [Test]
1559
+ public void TotalEqualsFloatNaNOneNaN()
1560
+ {
1561
+ Assert.IsFalse(float.NaN.TotalEquals(0f));
1562
+ Assert.IsFalse(0f.TotalEquals(float.NaN));
1563
+ Assert.IsFalse(float.NaN.TotalEquals(float.PositiveInfinity));
1564
+ Assert.IsFalse(float.PositiveInfinity.TotalEquals(float.NaN));
1565
+ }
1566
+
1567
+ [Test]
1568
+ public void TotalEqualsFloatPositiveInfinityBoth()
1569
+ {
1570
+ Assert.IsTrue(float.PositiveInfinity.TotalEquals(float.PositiveInfinity));
1571
+ }
1572
+
1573
+ [Test]
1574
+ public void TotalEqualsFloatNegativeInfinityBoth()
1575
+ {
1576
+ Assert.IsTrue(float.NegativeInfinity.TotalEquals(float.NegativeInfinity));
1577
+ }
1578
+
1579
+ [Test]
1580
+ public void TotalEqualsFloatInfinityMismatch()
1581
+ {
1582
+ Assert.IsFalse(float.PositiveInfinity.TotalEquals(float.NegativeInfinity));
1583
+ Assert.IsFalse(float.NegativeInfinity.TotalEquals(float.PositiveInfinity));
1584
+ Assert.IsFalse(float.PositiveInfinity.TotalEquals(0f));
1585
+ Assert.IsFalse(0f.TotalEquals(float.PositiveInfinity));
1586
+ Assert.IsFalse(float.NegativeInfinity.TotalEquals(0f));
1587
+ Assert.IsFalse(0f.TotalEquals(float.NegativeInfinity));
1588
+ }
1589
+
1590
+ [Test]
1591
+ public void TotalEqualsFloatRegularValues()
1592
+ {
1593
+ Assert.IsTrue(0f.TotalEquals(0f));
1594
+ Assert.IsTrue(1.5f.TotalEquals(1.5f));
1595
+ Assert.IsTrue((-10.25f).TotalEquals(-10.25f));
1596
+ Assert.IsTrue(float.MaxValue.TotalEquals(float.MaxValue));
1597
+ Assert.IsTrue(float.MinValue.TotalEquals(float.MinValue));
1598
+ Assert.IsTrue(float.Epsilon.TotalEquals(float.Epsilon));
1599
+ }
1600
+
1601
+ [Test]
1602
+ public void TotalEqualsFloatRegularValuesMismatch()
1603
+ {
1604
+ Assert.IsFalse(0f.TotalEquals(1f));
1605
+ Assert.IsFalse(1f.TotalEquals(0f));
1606
+ Assert.IsFalse(1.5f.TotalEquals(1.50001f));
1607
+ Assert.IsFalse((-5f).TotalEquals(5f));
1608
+ Assert.IsFalse(float.MaxValue.TotalEquals(float.MinValue));
1609
+ }
1610
+
1611
+ [Test]
1612
+ public void TotalEqualsFloatZeroPositiveAndNegative()
1613
+ {
1614
+ Assert.IsTrue(0f.TotalEquals(-0f));
1615
+ Assert.IsTrue((-0f).TotalEquals(0f));
1616
+ }
1617
+
1618
+ [Test]
1619
+ public void TotalEqualsDoubleNaNBothNaN()
1620
+ {
1621
+ Assert.IsTrue(double.NaN.TotalEquals(double.NaN));
1622
+ }
1623
+
1624
+ [Test]
1625
+ public void TotalEqualsDoubleNaNOneNaN()
1626
+ {
1627
+ Assert.IsFalse(double.NaN.TotalEquals(0.0));
1628
+ Assert.IsFalse(0.0.TotalEquals(double.NaN));
1629
+ Assert.IsFalse(double.NaN.TotalEquals(double.PositiveInfinity));
1630
+ Assert.IsFalse(double.PositiveInfinity.TotalEquals(double.NaN));
1631
+ }
1632
+
1633
+ [Test]
1634
+ public void TotalEqualsDoublePositiveInfinityBoth()
1635
+ {
1636
+ Assert.IsTrue(double.PositiveInfinity.TotalEquals(double.PositiveInfinity));
1637
+ }
1638
+
1639
+ [Test]
1640
+ public void TotalEqualsDoubleNegativeInfinityBoth()
1641
+ {
1642
+ Assert.IsTrue(double.NegativeInfinity.TotalEquals(double.NegativeInfinity));
1643
+ }
1644
+
1645
+ [Test]
1646
+ public void TotalEqualsDoubleInfinityMismatch()
1647
+ {
1648
+ Assert.IsFalse(double.PositiveInfinity.TotalEquals(double.NegativeInfinity));
1649
+ Assert.IsFalse(double.NegativeInfinity.TotalEquals(double.PositiveInfinity));
1650
+ Assert.IsFalse(double.PositiveInfinity.TotalEquals(0.0));
1651
+ Assert.IsFalse(0.0.TotalEquals(double.PositiveInfinity));
1652
+ Assert.IsFalse(double.NegativeInfinity.TotalEquals(0.0));
1653
+ Assert.IsFalse(0.0.TotalEquals(double.NegativeInfinity));
1654
+ }
1655
+
1656
+ [Test]
1657
+ public void TotalEqualsDoubleRegularValues()
1658
+ {
1659
+ Assert.IsTrue(0.0.TotalEquals(0.0));
1660
+ Assert.IsTrue(1.5.TotalEquals(1.5));
1661
+ Assert.IsTrue((-10.25).TotalEquals(-10.25));
1662
+ Assert.IsTrue(double.MaxValue.TotalEquals(double.MaxValue));
1663
+ Assert.IsTrue(double.MinValue.TotalEquals(double.MinValue));
1664
+ Assert.IsTrue(double.Epsilon.TotalEquals(double.Epsilon));
1665
+ }
1666
+
1667
+ [Test]
1668
+ public void TotalEqualsDoubleRegularValuesMismatch()
1669
+ {
1670
+ Assert.IsFalse(0.0.TotalEquals(1.0));
1671
+ Assert.IsFalse(1.0.TotalEquals(0.0));
1672
+ Assert.IsFalse(1.5.TotalEquals(1.50001));
1673
+ Assert.IsFalse((-5.0).TotalEquals(5.0));
1674
+ Assert.IsFalse(double.MaxValue.TotalEquals(double.MinValue));
1675
+ }
1676
+
1677
+ [Test]
1678
+ public void TotalEqualsDoubleZeroPositiveAndNegative()
1679
+ {
1680
+ Assert.IsTrue(0.0.TotalEquals(-0.0));
1681
+ Assert.IsTrue((-0.0).TotalEquals(0.0));
1682
+ }
1683
+
1684
+ [Test]
1685
+ public void TotalEqualsFloatVeryCloseValues()
1686
+ {
1687
+ float value = 1.234567f;
1688
+ float nextValue = BitConverter.Int32BitsToSingle(
1689
+ BitConverter.SingleToInt32Bits(value) + 1
1690
+ );
1691
+ Assert.IsFalse(value.TotalEquals(nextValue));
1692
+ }
1693
+
1694
+ [Test]
1695
+ public void TotalEqualsDoubleVeryCloseValues()
1696
+ {
1697
+ double value = 1.234567890123456;
1698
+ double nextValue = BitConverter.Int64BitsToDouble(
1699
+ BitConverter.DoubleToInt64Bits(value) + 1
1700
+ );
1701
+ Assert.IsFalse(value.TotalEquals(nextValue));
1702
+ }
1703
+
1704
+ [Test]
1705
+ public void TotalEqualsFloatSymmetric()
1706
+ {
1707
+ float[] values =
1708
+ {
1709
+ 0f,
1710
+ 1f,
1711
+ -1f,
1712
+ float.MaxValue,
1713
+ float.MinValue,
1714
+ float.Epsilon,
1715
+ float.NaN,
1716
+ float.PositiveInfinity,
1717
+ float.NegativeInfinity,
1718
+ };
1719
+
1720
+ foreach (float a in values)
1721
+ {
1722
+ foreach (float b in values)
1723
+ {
1724
+ Assert.AreEqual(
1725
+ a.TotalEquals(b),
1726
+ b.TotalEquals(a),
1727
+ $"TotalEquals should be symmetric for {a} and {b}"
1728
+ );
1729
+ }
1730
+ }
1731
+ }
1732
+
1733
+ [Test]
1734
+ public void TotalEqualsDoubleSymmetric()
1735
+ {
1736
+ double[] values =
1737
+ {
1738
+ 0.0,
1739
+ 1.0,
1740
+ -1.0,
1741
+ double.MaxValue,
1742
+ double.MinValue,
1743
+ double.Epsilon,
1744
+ double.NaN,
1745
+ double.PositiveInfinity,
1746
+ double.NegativeInfinity,
1747
+ };
1748
+
1749
+ foreach (double a in values)
1750
+ {
1751
+ foreach (double b in values)
1752
+ {
1753
+ Assert.AreEqual(
1754
+ a.TotalEquals(b),
1755
+ b.TotalEquals(a),
1756
+ $"TotalEquals should be symmetric for {a} and {b}"
1757
+ );
1758
+ }
1759
+ }
1760
+ }
1761
+
1762
+ [Test]
1763
+ public void TotalEqualsFloatTransitive()
1764
+ {
1765
+ float a = 5.5f;
1766
+ float b = 5.5f;
1767
+ float c = 5.5f;
1768
+
1769
+ Assert.IsTrue(a.TotalEquals(b));
1770
+ Assert.IsTrue(b.TotalEquals(c));
1771
+ Assert.IsTrue(a.TotalEquals(c));
1772
+
1773
+ float nan1 = float.NaN;
1774
+ float nan2 = float.NaN;
1775
+ float nan3 = float.NaN;
1776
+
1777
+ Assert.IsTrue(nan1.TotalEquals(nan2));
1778
+ Assert.IsTrue(nan2.TotalEquals(nan3));
1779
+ Assert.IsTrue(nan1.TotalEquals(nan3));
1780
+ }
1781
+
1782
+ [Test]
1783
+ public void TotalEqualsDoubleTransitive()
1784
+ {
1785
+ double a = 5.5;
1786
+ double b = 5.5;
1787
+ double c = 5.5;
1788
+
1789
+ Assert.IsTrue(a.TotalEquals(b));
1790
+ Assert.IsTrue(b.TotalEquals(c));
1791
+ Assert.IsTrue(a.TotalEquals(c));
1792
+
1793
+ double nan1 = double.NaN;
1794
+ double nan2 = double.NaN;
1795
+ double nan3 = double.NaN;
1796
+
1797
+ Assert.IsTrue(nan1.TotalEquals(nan2));
1798
+ Assert.IsTrue(nan2.TotalEquals(nan3));
1799
+ Assert.IsTrue(nan1.TotalEquals(nan3));
1800
+ }
1801
+
1802
+ [Test]
1803
+ public void TotalEqualsFloatReflexive()
1804
+ {
1805
+ float[] values =
1806
+ {
1807
+ 0f,
1808
+ 1f,
1809
+ -1f,
1810
+ float.MaxValue,
1811
+ float.MinValue,
1812
+ float.Epsilon,
1813
+ float.NaN,
1814
+ float.PositiveInfinity,
1815
+ float.NegativeInfinity,
1816
+ };
1817
+
1818
+ foreach (float value in values)
1819
+ {
1820
+ Assert.IsTrue(value.TotalEquals(value), $"{value} should equal itself");
1821
+ }
1822
+ }
1823
+
1824
+ [Test]
1825
+ public void TotalEqualsDoubleReflexive()
1826
+ {
1827
+ double[] values =
1828
+ {
1829
+ 0.0,
1830
+ 1.0,
1831
+ -1.0,
1832
+ double.MaxValue,
1833
+ double.MinValue,
1834
+ double.Epsilon,
1835
+ double.NaN,
1836
+ double.PositiveInfinity,
1837
+ double.NegativeInfinity,
1838
+ };
1839
+
1840
+ foreach (double value in values)
1841
+ {
1842
+ Assert.IsTrue(value.TotalEquals(value), $"{value} should equal itself");
1843
+ }
1844
+ }
1845
+
1846
+ [Test]
1847
+ public void TotalEqualsFloatDifferentFromStandardEquals()
1848
+ {
1849
+ Assert.IsTrue(float.NaN.TotalEquals(float.NaN));
1850
+ }
1851
+
1852
+ [Test]
1853
+ public void TotalEqualsDoubleDifferentFromStandardEquals()
1854
+ {
1855
+ Assert.IsTrue(double.NaN.TotalEquals(double.NaN));
1856
+ }
1857
+
1858
+ [Test]
1859
+ public void TotalEqualsFloatRandomNormalValues()
1860
+ {
1861
+ for (int i = 0; i < TestIterations; ++i)
1862
+ {
1863
+ float value = PRNG.Instance.NextFloat(-1000f, 1000f);
1864
+ Assert.IsTrue(value.TotalEquals(value));
1865
+
1866
+ float different = value + PRNG.Instance.NextFloat(0.001f, 10f);
1867
+ Assert.IsFalse(value.TotalEquals(different));
1868
+ }
1869
+ }
1870
+
1871
+ [Test]
1872
+ public void TotalEqualsDoubleRandomNormalValues()
1873
+ {
1874
+ for (int i = 0; i < TestIterations; ++i)
1875
+ {
1876
+ double value = PRNG.Instance.NextDouble(-1000.0, 1000.0);
1877
+ Assert.IsTrue(value.TotalEquals(value));
1878
+
1879
+ double different = value + PRNG.Instance.NextDouble(0.001, 10.0);
1880
+ Assert.IsFalse(value.TotalEquals(different));
1881
+ }
1882
+ }
1883
+ }
1884
+ }