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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1449) hide show
  1. package/.config/dotnet-tools.json +10 -10
  2. package/.csharpierignore +1 -0
  3. package/.csharpierrc.json +3 -0
  4. package/.editorconfig +184 -184
  5. package/.gitattributes +87 -63
  6. package/.githooks/pre-commit +49 -0
  7. package/.github/dependabot.yml +9 -9
  8. package/.github/workflows/csharpier.yml +135 -0
  9. package/.github/workflows/lint-doc-links.yml +27 -0
  10. package/.github/workflows/markdown-json.yml +41 -0
  11. package/.github/workflows/npm-publish.yml +75 -75
  12. package/.lychee.toml +26 -0
  13. package/.markdownlint.json +21 -0
  14. package/.markdownlintignore +8 -0
  15. package/.pre-commit-config.yaml +39 -22
  16. package/.prettierignore +22 -0
  17. package/.prettierrc.json +20 -0
  18. package/AGENTS.md +52 -0
  19. package/{Third Party Notices.md.meta → AGENTS.md.meta} +7 -7
  20. package/CHANGELOG.md.meta +7 -7
  21. package/DATA_STRUCTURES.md +324 -0
  22. package/DATA_STRUCTURES.md.meta +7 -0
  23. package/Docs/Images/attribute_resolution.svg +40 -0
  24. package/Docs/Images/attribute_resolution.svg.meta +7 -0
  25. package/Docs/Images/bitset.svg +47 -0
  26. package/Docs/Images/bitset.svg.meta +7 -0
  27. package/Docs/Images/concave_hull.svg +30 -0
  28. package/Docs/Images/concave_hull.svg.meta +7 -0
  29. package/Docs/Images/convex_hull.svg +29 -0
  30. package/Docs/Images/convex_hull.svg.meta +7 -0
  31. package/Docs/Images/cyclic_buffer.svg +37 -0
  32. package/Docs/Images/cyclic_buffer.svg.meta +7 -0
  33. package/Docs/Images/data_distribution_decision.svg +88 -0
  34. package/Docs/Images/data_distribution_decision.svg.meta +7 -0
  35. package/Docs/Images/deque.svg +64 -0
  36. package/Docs/Images/deque.svg.meta +7 -0
  37. package/Docs/Images/deque_queue.svg +107 -0
  38. package/Docs/Images/deque_queue.svg.meta +7 -0
  39. package/Docs/Images/disjoint_set.svg +47 -0
  40. package/Docs/Images/disjoint_set.svg.meta +7 -0
  41. package/Docs/Images/effects_pipeline.svg +59 -0
  42. package/Docs/Images/effects_pipeline.svg.meta +7 -0
  43. package/Docs/Images/geometry_edge_cases.svg +61 -0
  44. package/Docs/Images/geometry_edge_cases.svg.meta +7 -0
  45. package/Docs/Images/heap.svg +56 -0
  46. package/Docs/Images/heap.svg.meta +7 -0
  47. package/Docs/Images/kdtree_2d.svg +38 -0
  48. package/Docs/Images/kdtree_2d.svg.meta +7 -0
  49. package/Docs/Images/kdtree_3d.svg +83 -0
  50. package/Docs/Images/kdtree_3d.svg.meta +7 -0
  51. package/Docs/Images/octree_3d.svg +79 -0
  52. package/Docs/Images/octree_3d.svg.meta +7 -0
  53. package/Docs/Images/polyline_simplify.svg +18 -0
  54. package/Docs/Images/polyline_simplify.svg.meta +7 -0
  55. package/Docs/Images/quadtree_2d.svg +37 -0
  56. package/Docs/Images/quadtree_2d.svg.meta +7 -0
  57. package/Docs/Images/query_boundaries.svg +38 -0
  58. package/Docs/Images/query_boundaries.svg.meta +7 -0
  59. package/Docs/Images/random_generators.svg +105 -0
  60. package/Docs/Images/random_generators.svg.meta +7 -0
  61. package/Docs/Images/reflection_scan.svg +33 -0
  62. package/Docs/Images/reflection_scan.svg.meta +7 -0
  63. package/Docs/Images/relational_wiring.svg +75 -0
  64. package/Docs/Images/relational_wiring.svg.meta +7 -0
  65. package/Docs/Images/rtree_2d.svg +27 -0
  66. package/Docs/Images/rtree_2d.svg.meta +7 -0
  67. package/Docs/Images/rtree_3d.svg +79 -0
  68. package/Docs/Images/rtree_3d.svg.meta +7 -0
  69. package/Docs/Images/serialization_flow.svg +50 -0
  70. package/Docs/Images/serialization_flow.svg.meta +7 -0
  71. package/Docs/Images/singletons_lifecycle.svg +54 -0
  72. package/Docs/Images/singletons_lifecycle.svg.meta +7 -0
  73. package/Docs/Images/sparse_set.svg +54 -0
  74. package/Docs/Images/sparse_set.svg.meta +7 -0
  75. package/Docs/Images/trie.svg +55 -0
  76. package/Docs/Images/trie.svg.meta +7 -0
  77. package/Docs/Images.meta +8 -0
  78. package/Docs.meta +8 -0
  79. package/EDITOR_TOOLS_GUIDE.md +1976 -0
  80. package/EDITOR_TOOLS_GUIDE.md.meta +7 -0
  81. package/EFFECTS_SYSTEM.md +242 -0
  82. package/EFFECTS_SYSTEM.md.meta +7 -0
  83. package/EFFECTS_SYSTEM_TUTORIAL.md +467 -0
  84. package/EFFECTS_SYSTEM_TUTORIAL.md.meta +7 -0
  85. package/Editor/AnimationEventEditor.cs +1393 -874
  86. package/Editor/AnimationEventEditor.cs.meta +11 -11
  87. package/Editor/AssemblyInfo.cs +4 -0
  88. package/Editor/AssemblyInfo.cs.meta +3 -0
  89. package/Editor/AssetProcessors/SpriteLabelProcessor.cs +138 -111
  90. package/Editor/AssetProcessors/SpriteLabelProcessor.cs.meta +2 -2
  91. package/Editor/AssetProcessors.meta +2 -2
  92. package/Editor/Core/Helper/AnimationEventHelpers.cs +204 -0
  93. package/{Runtime/Core/DataStructure/ISpatialTree.cs.meta → Editor/Core/Helper/AnimationEventHelpers.cs.meta} +11 -11
  94. package/Editor/Core/Helper.meta +8 -0
  95. package/Editor/Core.meta +8 -0
  96. package/Editor/CustomDrawers/IntDropdownDrawer.cs +46 -46
  97. package/Editor/CustomDrawers/IntDropdownDrawer.cs.meta +2 -2
  98. package/Editor/CustomDrawers/StringInListeDrawer.cs +135 -135
  99. package/Editor/CustomDrawers/StringInListeDrawer.cs.meta +2 -2
  100. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs +105 -105
  101. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs.meta +2 -2
  102. package/Editor/CustomDrawers.meta +2 -2
  103. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +32 -32
  104. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  105. package/Editor/CustomEditors/PersistentDirectoryGUI.cs +799 -799
  106. package/Editor/CustomEditors/PersistentDirectoryGUI.cs.meta +2 -2
  107. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs +38 -40
  108. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs.meta +2 -2
  109. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs +685 -413
  110. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs.meta +2 -2
  111. package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +146 -0
  112. package/{Runtime/Core/DataStructure/KDTree.cs.meta → Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs.meta} +11 -11
  113. package/Editor/CustomEditors.meta +2 -2
  114. package/Editor/Extensions/SerializedPropertyExtensions.cs +217 -190
  115. package/Editor/Extensions/SerializedPropertyExtensions.cs.meta +2 -2
  116. package/Editor/Extensions/UnityExtensions.cs +50 -26
  117. package/Editor/Extensions/UnityExtensions.cs.meta +2 -2
  118. package/Editor/Extensions.meta +2 -2
  119. package/Editor/FitTextureSizeWindow.cs +785 -332
  120. package/Editor/FitTextureSizeWindow.cs.meta +2 -2
  121. package/Editor/Persistence/MultiFileSelectorPersistenceManager.cs +62 -0
  122. package/{Runtime/Core/DataStructure/QuadTree.cs.meta → Editor/Persistence/MultiFileSelectorPersistenceManager.cs.meta} +11 -11
  123. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs +65 -0
  124. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs.meta +11 -0
  125. package/Editor/Persistence.meta +8 -0
  126. package/Editor/PersistentDirectorySettings.cs +529 -248
  127. package/Editor/PersistentDirectorySettings.cs.meta +2 -2
  128. package/Editor/PrefabChecker.cs +1329 -741
  129. package/Editor/PrefabChecker.cs.meta +11 -11
  130. package/Editor/Sprites/AnimationCopier.cs +1518 -789
  131. package/Editor/Sprites/AnimationCopier.cs.meta +2 -2
  132. package/Editor/Sprites/AnimationCreator.cs +1532 -881
  133. package/Editor/Sprites/AnimationCreator.cs.meta +11 -11
  134. package/Editor/Sprites/AnimationViewerWindow.cs +1634 -1522
  135. package/Editor/Sprites/AnimationViewerWindow.cs.meta +2 -2
  136. package/Editor/Sprites/ScriptableSpriteAtlas.cs +251 -178
  137. package/Editor/Sprites/ScriptableSpriteAtlas.cs.meta +2 -2
  138. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs +1470 -1026
  139. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs.meta +2 -2
  140. package/Editor/Sprites/SpriteCropper.cs +1013 -523
  141. package/Editor/Sprites/SpriteCropper.cs.meta +2 -2
  142. package/Editor/Sprites/SpritePivotAdjustor.cs +605 -265
  143. package/Editor/Sprites/SpritePivotAdjustor.cs.meta +2 -2
  144. package/Editor/Sprites/SpriteSettingsApplier.cs +942 -918
  145. package/Editor/Sprites/SpriteSettingsApplier.cs.meta +2 -2
  146. package/Editor/Sprites/SpriteSettingsApplierAPI.cs +441 -0
  147. package/Editor/Sprites/SpriteSettingsApplierAPI.cs.meta +11 -0
  148. package/Editor/Sprites/SpriteSettingsProfileCollection.cs +12 -0
  149. package/Editor/Sprites/SpriteSettingsProfileCollection.cs.meta +11 -0
  150. package/Editor/Sprites/SpriteSheetAnimationCreator.cs +1586 -1537
  151. package/Editor/Sprites/SpriteSheetAnimationCreator.cs.meta +2 -2
  152. package/Editor/Sprites/TexturePlatformNameHelper.cs +78 -0
  153. package/Editor/Sprites/TexturePlatformNameHelper.cs.meta +11 -0
  154. package/Editor/Sprites/TextureResizerWizard.cs +434 -175
  155. package/Editor/Sprites/TextureResizerWizard.cs.meta +2 -2
  156. package/Editor/Sprites/TextureSettingsApplierAPI.cs +359 -0
  157. package/Editor/Sprites/TextureSettingsApplierAPI.cs.meta +11 -0
  158. package/Editor/Sprites/TextureSettingsApplierWindow.cs +605 -0
  159. package/Editor/Sprites/TextureSettingsApplierWindow.cs.meta +11 -0
  160. package/Editor/Sprites.meta +2 -2
  161. package/Editor/Styles/AnimationViewer.uss +115 -115
  162. package/Editor/Styles/AnimationViewer.uss.meta +2 -2
  163. package/Editor/Styles/AnimationViewer.uxml +56 -56
  164. package/Editor/Styles/AnimationViewer.uxml.meta +2 -2
  165. package/Editor/Styles/SpriteSheetAnimationCreator.uss +10 -0
  166. package/Editor/Styles/SpriteSheetAnimationCreator.uss.meta +11 -0
  167. package/Editor/Styles.meta +2 -2
  168. package/Editor/Tags/AttributeMetadataCacheEditor.cs +46 -0
  169. package/Editor/Tags/AttributeMetadataCacheEditor.cs.meta +11 -0
  170. package/Editor/Tags/AttributeMetadataCacheGenerator.cs +258 -0
  171. package/Editor/Tags/AttributeMetadataCacheGenerator.cs.meta +11 -0
  172. package/Editor/Tags.meta +8 -0
  173. package/Editor/Tools/ImageBlurTool.cs +451 -409
  174. package/Editor/Tools/ImageBlurTool.cs.meta +2 -2
  175. package/Editor/Tools.meta +2 -2
  176. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
  177. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
  178. package/Editor/Utils/EditorUi.cs +228 -0
  179. package/Editor/Utils/EditorUi.cs.meta +11 -0
  180. package/Editor/Utils/EditorUtilities.cs +22 -22
  181. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  182. package/Editor/Utils/ScriptableObjectSingletonCreator.cs +633 -52
  183. package/Editor/Utils/ScriptableObjectSingletonCreator.cs.meta +2 -2
  184. package/Editor/Utils.meta +8 -8
  185. package/Editor/Visuals/EnhancedImageEditor.cs +160 -160
  186. package/Editor/Visuals/EnhancedImageEditor.cs.meta +11 -11
  187. package/Editor/Visuals.meta +2 -2
  188. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +14 -18
  189. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  190. package/Editor.meta +8 -8
  191. package/GETTING_STARTED.md +425 -0
  192. package/GETTING_STARTED.md.meta +7 -0
  193. package/GLOSSARY.md +313 -0
  194. package/GLOSSARY.md.meta +7 -0
  195. package/HULLS.md +45 -0
  196. package/HULLS.md.meta +7 -0
  197. package/INDEX.md +429 -0
  198. package/INDEX.md.meta +7 -0
  199. package/LICENSE +21 -21
  200. package/LICENSE.md +7 -7
  201. package/LICENSE.md.meta +7 -7
  202. package/LICENSE.meta +7 -7
  203. package/MATH_AND_EXTENSIONS.md +316 -0
  204. package/MATH_AND_EXTENSIONS.md.meta +7 -0
  205. package/RANDOM_PERFORMANCE.md +140 -0
  206. package/RANDOM_PERFORMANCE.md.meta +7 -0
  207. package/README.md +3195 -188
  208. package/README.md.meta +7 -7
  209. package/REFLECTION_HELPERS.md +272 -0
  210. package/REFLECTION_HELPERS.md.meta +7 -0
  211. package/RELATIONAL_COMPONENTS.md +543 -0
  212. package/RELATIONAL_COMPONENTS.md.meta +7 -0
  213. package/Runtime/AssemblyInfo.cs +7 -0
  214. package/Runtime/AssemblyInfo.cs.meta +11 -0
  215. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  216. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  217. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +499 -278
  218. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  219. package/Runtime/Binaries/System.IO.Pipelines.dll +0 -0
  220. package/Runtime/Binaries/System.IO.Pipelines.dll.meta +33 -0
  221. package/Runtime/Binaries/System.IO.Pipelines.xml +702 -0
  222. package/Runtime/Binaries/System.IO.Pipelines.xml.meta +7 -0
  223. package/Runtime/Binaries/System.Text.Encodings.Web.dll +0 -0
  224. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  225. package/Runtime/Binaries/System.Text.Encodings.Web.xml +1084 -1079
  226. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  227. package/Runtime/Binaries/System.Text.Json.dll +0 -0
  228. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  229. package/Runtime/Binaries/System.Text.Json.xml +10217 -8116
  230. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  231. package/Runtime/Binaries.meta +8 -8
  232. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +10 -138
  233. package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -11
  234. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs +841 -0
  235. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs.meta +11 -0
  236. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +284 -226
  237. package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -11
  238. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
  239. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs.meta +11 -11
  240. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs +15 -15
  241. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs.meta +2 -2
  242. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs +36 -0
  243. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs.meta +11 -0
  244. package/Runtime/Core/Attributes/IntDropdownAttribute.cs +14 -14
  245. package/Runtime/Core/Attributes/IntDropdownAttribute.cs.meta +2 -2
  246. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  247. package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -11
  248. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  249. package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -11
  250. package/Runtime/Core/Attributes/ParentComponentAttribute.cs +376 -0
  251. package/Runtime/Core/Attributes/{ParentComponent.cs.meta → ParentComponentAttribute.cs.meta} +11 -11
  252. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +107 -0
  253. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs.meta +11 -0
  254. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +61 -14
  255. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -11
  256. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs +331 -0
  257. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs.meta +11 -0
  258. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs +15 -15
  259. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs.meta +2 -2
  260. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +264 -137
  261. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  262. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +115 -106
  263. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  264. package/Runtime/Core/Attributes/ValueHelpers.cs +10 -0
  265. package/Runtime/Core/Attributes/ValueHelpers.cs.meta +3 -0
  266. package/Runtime/Core/Attributes/WShowIfAttribute.cs +24 -24
  267. package/Runtime/Core/Attributes/WShowIfAttribute.cs.meta +2 -2
  268. package/Runtime/Core/Attributes.meta +8 -8
  269. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +192 -92
  270. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -11
  271. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +268 -185
  272. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -11
  273. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +360 -305
  274. package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -11
  275. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +146 -80
  276. package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -11
  277. package/Runtime/Core/DataStructure/Adapters.meta +8 -8
  278. package/Runtime/Core/DataStructure/BitSet.cs +626 -0
  279. package/Runtime/Core/DataStructure/BitSet.cs.meta +11 -0
  280. package/Runtime/Core/DataStructure/BoundingBox3D.cs +405 -0
  281. package/Runtime/Core/DataStructure/BoundingBox3D.cs.meta +11 -0
  282. package/Runtime/Core/DataStructure/Circle.cs +203 -50
  283. package/Runtime/Core/DataStructure/Circle.cs.meta +11 -11
  284. package/Runtime/Core/DataStructure/CyclicBuffer.cs +489 -266
  285. package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -11
  286. package/Runtime/Core/DataStructure/Deque.cs +561 -0
  287. package/Runtime/Core/DataStructure/Deque.cs.meta +11 -0
  288. package/Runtime/Core/DataStructure/DisjointSet.cs +483 -0
  289. package/Runtime/Core/DataStructure/DisjointSet.cs.meta +11 -0
  290. package/Runtime/Core/DataStructure/Heap.cs +514 -0
  291. package/Runtime/Core/DataStructure/Heap.cs.meta +11 -0
  292. package/Runtime/Core/DataStructure/{ISpatialTree.cs → ISpatialTree2D.cs} +25 -21
  293. package/Runtime/Core/DataStructure/ISpatialTree2D.cs.meta +11 -0
  294. package/Runtime/Core/DataStructure/ISpatialTree3D.cs +33 -0
  295. package/Runtime/Core/DataStructure/ISpatialTree3D.cs.meta +11 -0
  296. package/Runtime/Core/DataStructure/ImmutableBitSet.cs +398 -0
  297. package/Runtime/Core/DataStructure/ImmutableBitSet.cs.meta +3 -0
  298. package/Runtime/Core/DataStructure/KDTree2D.cs +852 -0
  299. package/Runtime/Core/DataStructure/KDTree2D.cs.meta +11 -0
  300. package/Runtime/Core/DataStructure/KDTree3D.cs +911 -0
  301. package/Runtime/Core/DataStructure/KDTree3D.cs.meta +11 -0
  302. package/Runtime/Core/DataStructure/OctTree3D.cs +983 -0
  303. package/Runtime/Core/DataStructure/OctTree3D.cs.meta +11 -0
  304. package/Runtime/Core/DataStructure/PriorityQueue.cs +194 -0
  305. package/Runtime/Core/DataStructure/PriorityQueue.cs.meta +11 -0
  306. package/Runtime/Core/DataStructure/QuadTree2D.cs +722 -0
  307. package/Runtime/Core/DataStructure/QuadTree2D.cs.meta +11 -0
  308. package/Runtime/Core/DataStructure/RTree2D.cs +704 -0
  309. package/Runtime/Core/DataStructure/{RTree.cs.meta → RTree2D.cs.meta} +11 -11
  310. package/Runtime/Core/DataStructure/RTree3D.cs +775 -0
  311. package/Runtime/Core/DataStructure/RTree3D.cs.meta +11 -0
  312. package/Runtime/Core/DataStructure/SparseSet.cs +597 -0
  313. package/Runtime/Core/DataStructure/SparseSet.cs.meta +11 -0
  314. package/Runtime/Core/DataStructure/SpatialHash2D.cs +312 -0
  315. package/Runtime/Core/DataStructure/SpatialHash2D.cs.meta +3 -0
  316. package/Runtime/Core/DataStructure/SpatialHash3D.cs +341 -0
  317. package/Runtime/Core/DataStructure/SpatialHash3D.cs.meta +11 -0
  318. package/Runtime/Core/DataStructure/Sphere.cs +264 -0
  319. package/Runtime/Core/DataStructure/Sphere.cs.meta +11 -0
  320. package/Runtime/Core/DataStructure/StringWrapper.cs +115 -91
  321. package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -11
  322. package/Runtime/Core/DataStructure/TimedCache.cs +88 -66
  323. package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -11
  324. package/Runtime/Core/DataStructure/Trie.cs +660 -359
  325. package/Runtime/Core/DataStructure/Trie.cs.meta +2 -2
  326. package/Runtime/Core/DataStructure.meta +8 -8
  327. package/Runtime/Core/Extension/AnimatorExtensions.cs +40 -25
  328. package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -11
  329. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +404 -110
  330. package/Runtime/Core/Extension/AsyncOperationExtensions.cs.meta +2 -2
  331. package/Runtime/Core/Extension/CircleExtensions.cs +125 -25
  332. package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -11
  333. package/Runtime/Core/Extension/ColorExtensions.cs +983 -644
  334. package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -11
  335. package/Runtime/Core/Extension/DictionaryExtensions.cs +606 -299
  336. package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -11
  337. package/Runtime/Core/Extension/DirectionExtensions.cs +377 -213
  338. package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -11
  339. package/Runtime/Core/Extension/EnumExtensions.cs +535 -137
  340. package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
  341. package/Runtime/Core/Extension/IEnumerableExtensions.cs +341 -124
  342. package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -11
  343. package/Runtime/Core/Extension/IListExtensions.cs +767 -248
  344. package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -11
  345. package/Runtime/Core/Extension/IReadonlyListExtensions.cs +687 -37
  346. package/Runtime/Core/Extension/IReadonlyListExtensions.cs.meta +2 -2
  347. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs +292 -0
  348. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs.meta +3 -0
  349. package/Runtime/Core/Extension/RandomExtensions.cs +938 -109
  350. package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -11
  351. package/Runtime/Core/Extension/StringExtensions.cs +1635 -239
  352. package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -11
  353. package/Runtime/Core/Extension/UnityExtensions.cs +4555 -1689
  354. package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -11
  355. package/Runtime/Core/Extension/WallstopStudiosLogger.cs +271 -245
  356. package/Runtime/Core/Extension/WallstopStudiosLogger.cs.meta +11 -11
  357. package/Runtime/Core/Extension.meta +8 -8
  358. package/Runtime/Core/Helper/ArrayConverter.cs +73 -39
  359. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  360. package/Runtime/Core/Helper/AssignUtilities.cs +33 -14
  361. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  362. package/Runtime/Core/Helper/DirectoryHelper.cs +210 -196
  363. package/Runtime/Core/Helper/DirectoryHelper.cs.meta +2 -2
  364. package/Runtime/Core/Helper/Enumerables.cs +51 -17
  365. package/Runtime/Core/Helper/Enumerables.cs.meta +11 -11
  366. package/Runtime/Core/Helper/FileHelper.cs +97 -77
  367. package/Runtime/Core/Helper/FileHelper.cs.meta +2 -2
  368. package/Runtime/Core/Helper/FormattingHelpers.cs +49 -38
  369. package/Runtime/Core/Helper/FormattingHelpers.cs.meta +2 -2
  370. package/Runtime/Core/Helper/FuncBasedComparer.cs +29 -0
  371. package/Runtime/Core/Helper/FuncBasedComparer.cs.meta +3 -0
  372. package/Runtime/Core/Helper/Geometry.cs +65 -43
  373. package/Runtime/Core/Helper/Geometry.cs.meta +11 -11
  374. package/Runtime/Core/Helper/Helpers.cs +1271 -831
  375. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  376. package/Runtime/Core/Helper/IterationHelpers.cs +83 -32
  377. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  378. package/Runtime/Core/Helper/LifetimeHelpers.cs +20 -13
  379. package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -11
  380. package/Runtime/Core/Helper/LineHelper.cs +259 -194
  381. package/Runtime/Core/Helper/LineHelper.cs.meta +2 -2
  382. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs +549 -539
  383. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs.meta +2 -2
  384. package/Runtime/Core/Helper/Logging.meta +2 -2
  385. package/Runtime/Core/Helper/Objects.cs +477 -769
  386. package/Runtime/Core/Helper/Objects.cs.meta +11 -11
  387. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  388. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  389. package/Runtime/Core/Helper/Partials/MathHelpers.cs +45 -30
  390. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  391. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +506 -400
  392. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  393. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +393 -377
  394. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  395. package/Runtime/Core/Helper/Partials.meta +2 -2
  396. package/Runtime/Core/Helper/PathHelper.cs +42 -15
  397. package/Runtime/Core/Helper/PathHelper.cs.meta +2 -2
  398. package/Runtime/Core/Helper/ReflectionHelpers.cs +5287 -1963
  399. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  400. package/Runtime/Core/Helper/ReverseComparer.cs +33 -0
  401. package/Runtime/Core/Helper/ReverseComparer.cs.meta +3 -0
  402. package/Runtime/Core/Helper/SceneHelper.cs +251 -224
  403. package/Runtime/Core/Helper/SceneHelper.cs.meta +2 -2
  404. package/Runtime/Core/Helper/SpriteHelpers.cs +50 -41
  405. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  406. package/Runtime/Core/Helper/StringInList.cs +61 -35
  407. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  408. package/Runtime/Core/Helper/TestAssemblyHelper.cs +134 -0
  409. package/Runtime/Core/Helper/TestAssemblyHelper.cs.meta +11 -0
  410. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +100 -82
  411. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs.meta +2 -2
  412. package/Runtime/Core/Helper/WallMath.cs +672 -166
  413. package/Runtime/Core/Helper/WallMath.cs.meta +11 -11
  414. package/Runtime/Core/Helper.meta +8 -8
  415. package/Runtime/Core/Math/Line2D.cs +263 -0
  416. package/Runtime/Core/Math/Line2D.cs.meta +11 -0
  417. package/Runtime/Core/Math/Line3D.cs +452 -0
  418. package/Runtime/Core/Math/Line3D.cs.meta +11 -0
  419. package/Runtime/Core/Math/Parabola.cs +241 -47
  420. package/Runtime/Core/Math/Parabola.cs.meta +11 -11
  421. package/Runtime/Core/Math/PointPolygonCheck.cs +175 -36
  422. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  423. package/Runtime/Core/Math/Range.cs +157 -92
  424. package/Runtime/Core/Math/Range.cs.meta +11 -11
  425. package/Runtime/Core/Math.meta +8 -8
  426. package/Runtime/Core/Model/Direction.cs +25 -43
  427. package/Runtime/Core/Model/Direction.cs.meta +11 -11
  428. package/Runtime/Core/Model.meta +8 -8
  429. package/Runtime/Core/OneOf/FastOneOf.cs +252 -152
  430. package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -11
  431. package/Runtime/Core/OneOf/FastOneOf2.cs +198 -0
  432. package/Runtime/Core/OneOf/FastOneOf2.cs.meta +11 -0
  433. package/Runtime/Core/OneOf/FastOneOf4.cs +324 -0
  434. package/Runtime/Core/OneOf/FastOneOf4.cs.meta +11 -0
  435. package/Runtime/Core/OneOf/None.cs +30 -4
  436. package/Runtime/Core/OneOf/None.cs.meta +11 -11
  437. package/Runtime/Core/OneOf.meta +8 -8
  438. package/Runtime/Core/Random/AbstractRandom.cs +1318 -655
  439. package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -11
  440. package/Runtime/Core/Random/DotNetRandom.cs +118 -54
  441. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  442. package/Runtime/Core/Random/IRandom.cs +203 -161
  443. package/Runtime/Core/Random/IRandom.cs.meta +11 -11
  444. package/Runtime/Core/Random/IllusionFlow.cs +171 -107
  445. package/Runtime/Core/Random/IllusionFlow.cs.meta +2 -2
  446. package/Runtime/Core/Random/LinearCongruentialGenerator.cs +90 -49
  447. package/Runtime/Core/Random/LinearCongruentialGenerator.cs.meta +2 -2
  448. package/Runtime/Core/Random/NativePcgRandom.cs +139 -97
  449. package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -11
  450. package/Runtime/Core/Random/PRNG.cs +21 -7
  451. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  452. package/Runtime/Core/Random/PcgRandom.cs +243 -149
  453. package/Runtime/Core/Random/PcgRandom.cs.meta +11 -11
  454. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  455. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  456. package/Runtime/Core/Random/RandomComparer.cs +34 -0
  457. package/Runtime/Core/Random/RandomComparer.cs.meta +3 -0
  458. package/Runtime/Core/Random/RandomState.cs +206 -131
  459. package/Runtime/Core/Random/RandomState.cs.meta +11 -11
  460. package/Runtime/Core/Random/RandomUtilities.cs +55 -26
  461. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  462. package/Runtime/Core/Random/RomuDuo.cs +171 -116
  463. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  464. package/Runtime/Core/Random/SplitMix64.cs +134 -94
  465. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  466. package/Runtime/Core/Random/SquirrelRandom.cs +127 -84
  467. package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -11
  468. package/Runtime/Core/Random/SystemRandom.cs +203 -162
  469. package/Runtime/Core/Random/SystemRandom.cs.meta +11 -11
  470. package/Runtime/Core/Random/ThreadLocalRandom.cs +25 -12
  471. package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -11
  472. package/Runtime/Core/Random/UnityRandom.cs +109 -57
  473. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  474. package/Runtime/Core/Random/WyRandom.cs +158 -121
  475. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  476. package/Runtime/Core/Random/XorShiftRandom.cs +106 -52
  477. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  478. package/Runtime/Core/Random/XoroShiroRandom.cs +184 -119
  479. package/Runtime/Core/Random/XoroShiroRandom.cs.meta +2 -2
  480. package/Runtime/Core/Random.meta +8 -8
  481. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs +248 -0
  482. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs.meta +11 -0
  483. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs +119 -0
  484. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs.meta +11 -0
  485. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs +74 -0
  486. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs.meta +11 -0
  487. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs +132 -0
  488. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs.meta +11 -0
  489. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs +135 -0
  490. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs.meta +11 -0
  491. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs +98 -0
  492. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs.meta +11 -0
  493. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs +123 -0
  494. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs.meta +11 -0
  495. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
  496. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs.meta +2 -2
  497. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs +112 -0
  498. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs.meta +11 -0
  499. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs +62 -0
  500. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs.meta +11 -0
  501. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs +72 -0
  502. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs.meta +11 -0
  503. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs +80 -0
  504. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs.meta +11 -0
  505. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +36 -36
  506. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs.meta +2 -2
  507. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs +245 -0
  508. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs.meta +11 -0
  509. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs +92 -0
  510. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs.meta +11 -0
  511. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs +119 -0
  512. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs.meta +11 -0
  513. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs +72 -0
  514. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs.meta +11 -0
  515. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs +95 -0
  516. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs.meta +11 -0
  517. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +237 -218
  518. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs.meta +2 -2
  519. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs +142 -0
  520. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs.meta +11 -0
  521. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs +135 -0
  522. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs.meta +11 -0
  523. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs +79 -0
  524. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs.meta +11 -0
  525. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs +76 -0
  526. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs.meta +11 -0
  527. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs +88 -0
  528. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs.meta +11 -0
  529. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs +106 -0
  530. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs.meta +11 -0
  531. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs +71 -0
  532. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs.meta +11 -0
  533. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs +80 -0
  534. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs.meta +11 -0
  535. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs +76 -0
  536. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs.meta +11 -0
  537. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs +115 -0
  538. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs.meta +11 -0
  539. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs +84 -0
  540. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs.meta +11 -0
  541. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs +88 -0
  542. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs.meta +11 -0
  543. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs +87 -0
  544. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs.meta +11 -0
  545. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs +264 -0
  546. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs.meta +11 -0
  547. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +158 -0
  548. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs.meta +11 -0
  549. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs +103 -0
  550. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs.meta +11 -0
  551. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs +121 -0
  552. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs.meta +11 -0
  553. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs +54 -0
  554. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs.meta +11 -0
  555. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +30 -28
  556. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs.meta +2 -2
  557. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +72 -74
  558. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -11
  559. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs +72 -0
  560. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs.meta +11 -0
  561. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +80 -81
  562. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -11
  563. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs +80 -0
  564. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs.meta +11 -0
  565. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
  566. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs.meta +2 -2
  567. package/Runtime/Core/Serialization/JsonConverters.meta +8 -8
  568. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +383 -0
  569. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs.meta +11 -0
  570. package/Runtime/Core/Serialization/Serializer.cs +2020 -195
  571. package/Runtime/Core/Serialization/Serializer.cs.meta +11 -11
  572. package/Runtime/Core/Serialization.meta +8 -8
  573. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +228 -228
  574. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -11
  575. package/Runtime/Core/Threading.meta +8 -8
  576. package/Runtime/Core.meta +8 -8
  577. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +185 -0
  578. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs.meta +11 -0
  579. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +109 -0
  580. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs.meta +11 -0
  581. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +78 -0
  582. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs.meta +11 -0
  583. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +83 -0
  584. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs.meta +11 -0
  585. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef +30 -0
  586. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef.meta +7 -0
  587. package/Runtime/Integrations/VContainer.meta +8 -0
  588. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +180 -0
  589. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs.meta +11 -0
  590. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +105 -0
  591. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs.meta +11 -0
  592. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +72 -0
  593. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs.meta +11 -0
  594. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +87 -0
  595. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs.meta +11 -0
  596. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef +30 -0
  597. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef.meta +7 -0
  598. package/Runtime/Integrations/Zenject.meta +8 -0
  599. package/Runtime/Integrations.meta +8 -0
  600. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  601. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  602. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  603. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  604. package/Runtime/Protobuf-Net.meta +8 -8
  605. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs +11 -0
  606. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs.meta +11 -0
  607. package/Runtime/Tags/Attribute.cs +399 -205
  608. package/Runtime/Tags/Attribute.cs.meta +2 -2
  609. package/Runtime/Tags/AttributeEffect.cs +372 -281
  610. package/Runtime/Tags/AttributeEffect.cs.meta +2 -2
  611. package/Runtime/Tags/AttributeMetadataCache.cs +503 -0
  612. package/Runtime/Tags/AttributeMetadataCache.cs.meta +11 -0
  613. package/Runtime/Tags/AttributeMetadataFilters.cs +108 -0
  614. package/Runtime/Tags/AttributeMetadataFilters.cs.meta +11 -0
  615. package/Runtime/Tags/AttributeModification.cs +132 -48
  616. package/Runtime/Tags/AttributeModification.cs.meta +2 -2
  617. package/Runtime/Tags/AttributeUtilities.cs +376 -209
  618. package/Runtime/Tags/AttributeUtilities.cs.meta +2 -2
  619. package/Runtime/Tags/AttributesComponent.cs +237 -163
  620. package/Runtime/Tags/AttributesComponent.cs.meta +2 -2
  621. package/Runtime/Tags/CollisionSenses.cs +117 -91
  622. package/Runtime/Tags/CollisionSenses.cs.meta +2 -2
  623. package/Runtime/Tags/CosmeticEffectComponent.cs +112 -50
  624. package/Runtime/Tags/CosmeticEffectComponent.cs.meta +2 -2
  625. package/Runtime/Tags/CosmeticEffectData.cs +109 -63
  626. package/Runtime/Tags/CosmeticEffectData.cs.meta +2 -2
  627. package/Runtime/Tags/EffectHandle.cs +150 -65
  628. package/Runtime/Tags/EffectHandle.cs.meta +2 -2
  629. package/Runtime/Tags/EffectHandler.cs +470 -393
  630. package/Runtime/Tags/EffectHandler.cs.meta +2 -2
  631. package/Runtime/Tags/ModificationAction.cs +60 -9
  632. package/Runtime/Tags/ModificationAction.cs.meta +2 -2
  633. package/Runtime/Tags/ModifierDurationType.cs +71 -13
  634. package/Runtime/Tags/ModifierDurationType.cs.meta +2 -2
  635. package/Runtime/Tags/TagHandler.cs +373 -158
  636. package/Runtime/Tags/TagHandler.cs.meta +2 -2
  637. package/Runtime/Tags.meta +2 -2
  638. package/Runtime/Utils/AnimationEventEqualityComparer.cs +198 -161
  639. package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -11
  640. package/Runtime/Utils/AnimatorEnumStateMachine.cs +110 -88
  641. package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -11
  642. package/Runtime/Utils/Ascii85.cs +132 -115
  643. package/Runtime/Utils/Ascii85.cs.meta +2 -2
  644. package/Runtime/Utils/Buffers.cs +1151 -550
  645. package/Runtime/Utils/Buffers.cs.meta +11 -11
  646. package/Runtime/Utils/CenterPointOffset.cs +35 -30
  647. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  648. package/Runtime/Utils/ChildSpawner.cs +250 -157
  649. package/Runtime/Utils/ChildSpawner.cs.meta +2 -2
  650. package/Runtime/Utils/CircleLineRenderer.cs +142 -142
  651. package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -11
  652. package/Runtime/Utils/CollisionProxy.cs +48 -48
  653. package/Runtime/Utils/CollisionProxy.cs.meta +2 -2
  654. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  655. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  656. package/Runtime/Utils/DeferredDisposalResult.cs +20 -23
  657. package/Runtime/Utils/DeferredDisposalResult.cs.meta +2 -2
  658. package/Runtime/Utils/LZMA.cs +276 -53
  659. package/Runtime/Utils/LZMA.cs.meta +2 -2
  660. package/Runtime/Utils/MatchColliderToSprite.cs +104 -104
  661. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  662. package/Runtime/Utils/MatchTransform.cs +99 -82
  663. package/Runtime/Utils/MatchTransform.cs.meta +2 -2
  664. package/Runtime/Utils/Oscillator.cs +27 -27
  665. package/Runtime/Utils/Oscillator.cs.meta +11 -11
  666. package/Runtime/Utils/PolygonCollider2DOptimizer.cs +104 -83
  667. package/Runtime/Utils/PolygonCollider2DOptimizer.cs.meta +2 -2
  668. package/Runtime/Utils/RuntimeSingleton.cs +139 -89
  669. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  670. package/Runtime/Utils/ScriptableObjectSingleton.cs +226 -85
  671. package/Runtime/Utils/ScriptableObjectSingleton.cs.meta +2 -2
  672. package/Runtime/Utils/SerializedStringComparer.cs +107 -107
  673. package/Runtime/Utils/SerializedStringComparer.cs.meta +2 -2
  674. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  675. package/Runtime/Utils/SetTextureImportData.cs.meta +11 -11
  676. package/Runtime/Utils/SevenZip/Common/CRC.cs +70 -70
  677. package/Runtime/Utils/SevenZip/Common/CRC.cs.meta +11 -11
  678. package/Runtime/Utils/SevenZip/Common/InBuffer.cs +84 -84
  679. package/Runtime/Utils/SevenZip/Common/InBuffer.cs.meta +11 -11
  680. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs +70 -70
  681. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs.meta +11 -11
  682. package/Runtime/Utils/SevenZip/Common.meta +2 -2
  683. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs +28 -28
  684. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs.meta +11 -11
  685. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs +454 -454
  686. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs.meta +11 -11
  687. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs +179 -179
  688. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs.meta +11 -11
  689. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs +137 -137
  690. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs.meta +11 -11
  691. package/Runtime/Utils/SevenZip/Compress/LZ.meta +8 -8
  692. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs +110 -110
  693. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs.meta +11 -11
  694. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs +525 -527
  695. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs.meta +11 -11
  696. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs +1891 -1904
  697. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs.meta +11 -11
  698. package/Runtime/Utils/SevenZip/Compress/LZMA.meta +8 -8
  699. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs +242 -242
  700. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs.meta +11 -11
  701. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs +146 -149
  702. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs.meta +11 -11
  703. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs +177 -177
  704. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs.meta +11 -11
  705. package/Runtime/Utils/SevenZip/Compress/RangeCoder.meta +8 -8
  706. package/Runtime/Utils/SevenZip/Compress.meta +8 -8
  707. package/Runtime/Utils/SevenZip/ICoder.cs +177 -177
  708. package/Runtime/Utils/SevenZip/ICoder.cs.meta +11 -11
  709. package/Runtime/Utils/SevenZip.meta +2 -2
  710. package/Runtime/Utils/SpriteRendererMetadata.cs +346 -370
  711. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  712. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  713. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  714. package/Runtime/Utils/StartTracker.cs +15 -15
  715. package/Runtime/Utils/StartTracker.cs.meta +2 -2
  716. package/Runtime/Utils/TextureScale.cs +356 -179
  717. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  718. package/Runtime/Utils/TypeNameSorter.cs +17 -17
  719. package/Runtime/Utils/TypeNameSorter.cs.meta +2 -2
  720. package/Runtime/Utils/UnityObjectNameComparer.cs +89 -89
  721. package/Runtime/Utils/UnityObjectNameComparer.cs.meta +2 -2
  722. package/Runtime/Utils.meta +8 -8
  723. package/Runtime/Visuals/AnimatedSpriteLayer.cs +217 -130
  724. package/Runtime/Visuals/AnimatedSpriteLayer.cs.meta +2 -2
  725. package/Runtime/Visuals/UGUI/EnhancedImage.cs +218 -85
  726. package/Runtime/Visuals/UGUI/EnhancedImage.cs.meta +2 -2
  727. package/Runtime/Visuals/UGUI.meta +2 -2
  728. package/Runtime/Visuals/UIToolkit/LayeredImage.cs +781 -484
  729. package/Runtime/Visuals/UIToolkit/LayeredImage.cs.meta +2 -2
  730. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs +945 -322
  731. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs.meta +2 -2
  732. package/Runtime/Visuals/UIToolkit.meta +2 -2
  733. package/Runtime/Visuals.meta +2 -2
  734. package/Runtime/WallstopStudios.UnityHelpers.asmdef +22 -14
  735. package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -7
  736. package/Runtime.meta +8 -8
  737. package/SERIALIZATION.md +648 -0
  738. package/SERIALIZATION.md.meta +7 -0
  739. package/SINGLETONS.md +427 -0
  740. package/SINGLETONS.md.meta +7 -0
  741. package/SPATIAL_TREES_2D_GUIDE.md +261 -0
  742. package/SPATIAL_TREES_2D_GUIDE.md.meta +7 -0
  743. package/SPATIAL_TREES_3D_GUIDE.md +214 -0
  744. package/SPATIAL_TREES_3D_GUIDE.md.meta +7 -0
  745. package/SPATIAL_TREE_2D_PERFORMANCE.md +238 -0
  746. package/SPATIAL_TREE_2D_PERFORMANCE.md.meta +7 -0
  747. package/SPATIAL_TREE_3D_PERFORMANCE.md +240 -0
  748. package/SPATIAL_TREE_3D_PERFORMANCE.md.meta +7 -0
  749. package/SPATIAL_TREE_SEMANTICS.md +106 -0
  750. package/SPATIAL_TREE_SEMANTICS.md.meta +7 -0
  751. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab +77 -0
  752. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab.meta +8 -0
  753. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab +47 -0
  754. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab.meta +8 -0
  755. package/Samples~/DI - VContainer/Prefabs.meta +9 -0
  756. package/Samples~/DI - VContainer/README.md +334 -0
  757. package/Samples~/DI - VContainer/README.md.meta +8 -0
  758. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity +120 -0
  759. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity.meta +8 -0
  760. package/Samples~/DI - VContainer/Scenes.meta +9 -0
  761. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +24 -0
  762. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs.meta +12 -0
  763. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +21 -0
  764. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs.meta +12 -0
  765. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef +37 -0
  766. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef.meta +8 -0
  767. package/Samples~/DI - VContainer/Scripts/Spawner.cs +21 -0
  768. package/Samples~/DI - VContainer/Scripts/Spawner.cs.meta +12 -0
  769. package/Samples~/DI - VContainer/Scripts.meta +9 -0
  770. package/Samples~/DI - VContainer.meta +9 -0
  771. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab +77 -0
  772. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab.meta +8 -0
  773. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab +47 -0
  774. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab.meta +8 -0
  775. package/Samples~/DI - Zenject/Prefabs.meta +9 -0
  776. package/Samples~/DI - Zenject/README.md +389 -0
  777. package/Samples~/DI - Zenject/README.md.meta +7 -0
  778. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity +164 -0
  779. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity.meta +8 -0
  780. package/Samples~/DI - Zenject/Scenes.meta +9 -0
  781. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +19 -0
  782. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs.meta +12 -0
  783. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef +36 -0
  784. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef.meta +8 -0
  785. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs +47 -0
  786. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs.meta +12 -0
  787. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +20 -0
  788. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs.meta +12 -0
  789. package/Samples~/DI - Zenject/Scripts.meta +9 -0
  790. package/Samples~/DI - Zenject.meta +9 -0
  791. package/Samples~/Random - PRNG/README.md +12 -0
  792. package/Samples~/Random - PRNG/README.md.meta +8 -0
  793. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs +28 -0
  794. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs.meta +12 -0
  795. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef +17 -0
  796. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef.meta +8 -0
  797. package/Samples~/Random - PRNG/Scripts.meta +9 -0
  798. package/Samples~/Random - PRNG.meta +9 -0
  799. package/Samples~/Relational Components - Basic/README.md +19 -0
  800. package/Samples~/Relational Components - Basic/README.md.meta +8 -0
  801. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs +37 -0
  802. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs.meta +12 -0
  803. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef +17 -0
  804. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef.meta +8 -0
  805. package/Samples~/Relational Components - Basic/Scripts.meta +9 -0
  806. package/Samples~/Relational Components - Basic.meta +9 -0
  807. package/Samples~/Serialization - JSON/README.md +13 -0
  808. package/Samples~/Serialization - JSON/README.md.meta +8 -0
  809. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs +50 -0
  810. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs.meta +12 -0
  811. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef +17 -0
  812. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef.meta +8 -0
  813. package/Samples~/Serialization - JSON/Scripts.meta +9 -0
  814. package/Samples~/Serialization - JSON.meta +9 -0
  815. package/Samples~/Spatial Structures - 2D and 3D/README.md +13 -0
  816. package/Samples~/Spatial Structures - 2D and 3D/README.md.meta +8 -0
  817. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef +17 -0
  818. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef.meta +8 -0
  819. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs +62 -0
  820. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs.meta +12 -0
  821. package/Samples~/Spatial Structures - 2D and 3D/Scripts.meta +9 -0
  822. package/Samples~/Spatial Structures - 2D and 3D.meta +9 -0
  823. package/Samples~/UGUI - EnhancedImage/README.md +12 -0
  824. package/Samples~/UGUI - EnhancedImage/README.md.meta +8 -0
  825. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs +36 -0
  826. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs.meta +12 -0
  827. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef +17 -0
  828. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef.meta +8 -0
  829. package/Samples~/UGUI - EnhancedImage/Scripts.meta +9 -0
  830. package/Samples~/UGUI - EnhancedImage.meta +9 -0
  831. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +12 -0
  832. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md.meta +8 -0
  833. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs +45 -0
  834. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs.meta +12 -0
  835. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef +19 -0
  836. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef.meta +8 -0
  837. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor.meta +9 -0
  838. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts.meta +9 -0
  839. package/Samples~/UI Toolkit - MultiFile Selector (Editor).meta +9 -0
  840. package/Shaders/Materials/BackgroundMask-Material.mat +59 -59
  841. package/Shaders/Materials/BackgroundMask-Material.mat.meta +8 -8
  842. package/Shaders/Materials.meta +8 -8
  843. package/Shaders/ShaderGraph/BackgroundMask.shadergraph +1653 -1653
  844. package/Shaders/ShaderGraph/BackgroundMask.shadergraph.meta +10 -10
  845. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph +835 -835
  846. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph.meta +10 -10
  847. package/Shaders/ShaderGraph.meta +8 -8
  848. package/Shaders/Support/EnhancedImageSupport.shader +64 -0
  849. package/Shaders/Support/EnhancedImageSupport.shader.meta +9 -0
  850. package/Shaders/Support.meta +8 -0
  851. package/Shaders.meta +8 -8
  852. package/Styles/Elements/Progress/ArcedProgressBar.cs +345 -345
  853. package/Styles/Elements/Progress/ArcedProgressBar.cs.meta +2 -2
  854. package/Styles/Elements/Progress/CircularProgressBar.cs +307 -307
  855. package/Styles/Elements/Progress/CircularProgressBar.cs.meta +2 -2
  856. package/Styles/Elements/Progress/GlitchProgressBar.cs +416 -416
  857. package/Styles/Elements/Progress/GlitchProgressBar.cs.meta +2 -2
  858. package/Styles/Elements/Progress/LiquidProgressBar.cs +632 -632
  859. package/Styles/Elements/Progress/LiquidProgressBar.cs.meta +2 -2
  860. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs +722 -722
  861. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs.meta +2 -2
  862. package/Styles/Elements/Progress/RegularProgressBar.cs +405 -405
  863. package/Styles/Elements/Progress/RegularProgressBar.cs.meta +2 -2
  864. package/Styles/Elements/Progress/WigglyProgressBar.cs +837 -837
  865. package/Styles/Elements/Progress/WigglyProgressBar.cs.meta +2 -2
  866. package/Styles/Elements/Progress.meta +2 -2
  867. package/Styles/Elements.meta +2 -2
  868. package/Styles/USS/ArcedProgressBar.uss +18 -18
  869. package/Styles/USS/ArcedProgressBar.uss.meta +2 -2
  870. package/Styles/USS/CirclularProgressBar.uss +17 -17
  871. package/Styles/USS/CirclularProgressBar.uss.meta +2 -2
  872. package/Styles/USS/RegularProgressBar.uss +32 -32
  873. package/Styles/USS/RegularProgressBar.uss.meta +2 -2
  874. package/Styles/USS/WigglyProgressBar.uss +16 -16
  875. package/Styles/USS/WigglyProgressBar.uss.meta +2 -2
  876. package/Styles/USS.meta +2 -2
  877. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef +14 -17
  878. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef.meta +7 -7
  879. package/Styles.meta +2 -2
  880. package/THIRD_PARTY_NOTICES.md +74 -0
  881. package/THIRD_PARTY_NOTICES.md.meta +7 -0
  882. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +155 -0
  883. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs.meta +11 -0
  884. package/Tests/Editor/Attributes.meta +8 -0
  885. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +118 -0
  886. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs.meta +11 -0
  887. package/Tests/Editor/Core/Attributes.meta +8 -0
  888. package/Tests/Editor/Core.meta +8 -0
  889. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs +194 -0
  890. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs.meta +3 -0
  891. package/Tests/Editor/Extensions.meta +3 -0
  892. package/Tests/Editor/Helper/DummyScriptableObject.cs +6 -0
  893. package/Tests/Editor/Helper/DummyScriptableObject.cs.meta +3 -0
  894. package/Tests/Editor/Helper/HelpersTests.cs +101 -0
  895. package/Tests/Editor/Helper/HelpersTests.cs.meta +3 -0
  896. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs +63 -0
  897. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs.meta +11 -0
  898. package/Tests/Editor/Helper/PromptScope.cs +28 -0
  899. package/Tests/Editor/Helper/PromptScope.cs.meta +11 -0
  900. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs +105 -0
  901. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs.meta +11 -0
  902. package/Tests/Editor/Helper/SpriteHelpersTests.cs +334 -0
  903. package/Tests/Editor/Helper/SpriteHelpersTests.cs.meta +3 -0
  904. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs +183 -0
  905. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs.meta +11 -0
  906. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs +161 -0
  907. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs.meta +11 -0
  908. package/Tests/Editor/Helper.meta +3 -0
  909. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs +40 -0
  910. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs.meta +11 -0
  911. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +77 -0
  912. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs.meta +11 -0
  913. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +36 -0
  914. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef.meta +7 -0
  915. package/Tests/Editor/Integrations/VContainer.meta +8 -0
  916. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +36 -0
  917. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef.meta +7 -0
  918. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs +40 -0
  919. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs.meta +11 -0
  920. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +76 -0
  921. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs.meta +11 -0
  922. package/Tests/Editor/Integrations/Zenject.meta +8 -0
  923. package/Tests/Editor/Integrations.meta +8 -0
  924. package/Tests/Editor/MultiFileSelectorElementTests.cs +265 -0
  925. package/Tests/Editor/MultiFileSelectorElementTests.cs.meta +11 -0
  926. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs +100 -0
  927. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs.meta +11 -0
  928. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +199 -0
  929. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs.meta +11 -0
  930. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +108 -0
  931. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs.meta +11 -0
  932. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +323 -0
  933. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs.meta +11 -0
  934. package/Tests/Editor/Sprites/SpriteCropperTests.cs +162 -0
  935. package/Tests/Editor/Sprites/SpriteCropperTests.cs.meta +11 -0
  936. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs +227 -0
  937. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs.meta +11 -0
  938. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +113 -0
  939. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs.meta +11 -0
  940. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +28 -0
  941. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs.meta +11 -0
  942. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +248 -0
  943. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs.meta +11 -0
  944. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +180 -0
  945. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs.meta +11 -0
  946. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +295 -0
  947. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs.meta +11 -0
  948. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +134 -0
  949. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs.meta +11 -0
  950. package/Tests/Editor/Sprites.meta +8 -0
  951. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs +10 -0
  952. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs.meta +11 -0
  953. package/Tests/Editor/TestComponents.meta +8 -0
  954. package/Tests/Editor/Tools/ImageBlurToolTests.cs +135 -0
  955. package/Tests/Editor/Tools/ImageBlurToolTests.cs.meta +11 -0
  956. package/Tests/Editor/Tools.meta +8 -0
  957. package/Tests/Editor/Utils/CommonTestBase.cs +208 -0
  958. package/Tests/Editor/Utils/CommonTestBase.cs.meta +11 -0
  959. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs +306 -0
  960. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs.meta +9 -0
  961. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +183 -0
  962. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs.meta +11 -0
  963. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs +466 -0
  964. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs.meta +11 -0
  965. package/Tests/Editor/Utils.meta +3 -0
  966. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +19 -0
  967. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
  968. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +781 -0
  969. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs.meta +11 -0
  970. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs +96 -0
  971. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs.meta +11 -0
  972. package/Tests/Editor/Windows/PrefabCheckerTests.cs +81 -0
  973. package/Tests/Editor/Windows/PrefabCheckerTests.cs.meta +11 -0
  974. package/Tests/Editor/Windows.meta +8 -0
  975. package/Tests/Editor.meta +8 -0
  976. package/Tests/Runtime/AssemblyInfo.cs +4 -0
  977. package/Tests/Runtime/AssemblyInfo.cs.meta +3 -0
  978. package/Tests/Runtime/Attributes/ChildComponentTests.cs +766 -81
  979. package/Tests/Runtime/Attributes/ChildComponentTests.cs.meta +2 -2
  980. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  981. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs.meta +2 -2
  982. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  983. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs.meta +2 -2
  984. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs +34 -34
  985. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs.meta +2 -2
  986. package/Tests/Runtime/Attributes/Components/RelationalComponentsTesterSimple.cs +37 -0
  987. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentsTesterSimple.cs.meta +2 -2
  988. package/Tests/Runtime/Attributes/Components.meta +2 -2
  989. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs +75 -0
  990. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs.meta +11 -0
  991. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs +26 -0
  992. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs.meta +3 -0
  993. package/Tests/Runtime/Attributes/ParentComponentTests.cs +565 -68
  994. package/Tests/Runtime/Attributes/ParentComponentTests.cs.meta +2 -2
  995. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs +614 -0
  996. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs.meta +11 -0
  997. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs +478 -0
  998. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs.meta +11 -0
  999. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs +56 -0
  1000. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs.meta +11 -0
  1001. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs +226 -0
  1002. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs.meta +11 -0
  1003. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +109 -0
  1004. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs.meta +11 -0
  1005. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs +234 -0
  1006. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs.meta +11 -0
  1007. package/Tests/Runtime/Attributes/SiblingComponentTests.cs +721 -0
  1008. package/Tests/Runtime/Attributes/SiblingComponentTests.cs.meta +11 -0
  1009. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs +96 -0
  1010. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs.meta +11 -0
  1011. package/Tests/Runtime/Attributes.meta +2 -2
  1012. package/Tests/Runtime/Core/Random/RandomComparerTests.cs +166 -0
  1013. package/Tests/Runtime/Core/Random/RandomComparerTests.cs.meta +11 -0
  1014. package/Tests/Runtime/Core/Random.meta +8 -0
  1015. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs +56 -56
  1016. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs.meta +2 -2
  1017. package/Tests/Runtime/Core/Threading.meta +2 -2
  1018. package/Tests/Runtime/Core.meta +2 -2
  1019. package/Tests/Runtime/DataStructures/BalancedKDTree2DTests.cs +562 -0
  1020. package/Tests/Runtime/DataStructures/{BalancedKDTreeTests.cs.meta → BalancedKDTree2DTests.cs.meta} +11 -11
  1021. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs +10 -0
  1022. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs.meta +11 -0
  1023. package/Tests/Runtime/DataStructures/BitSetTests.cs +1400 -0
  1024. package/Tests/Runtime/DataStructures/BitSetTests.cs.meta +3 -0
  1025. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs +1215 -0
  1026. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs.meta +11 -0
  1027. package/Tests/Runtime/DataStructures/CircleTests.cs +965 -0
  1028. package/Tests/Runtime/DataStructures/CircleTests.cs.meta +11 -0
  1029. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +2083 -324
  1030. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs.meta +2 -2
  1031. package/Tests/Runtime/DataStructures/DequeTests.cs +790 -0
  1032. package/Tests/Runtime/DataStructures/DequeTests.cs.meta +3 -0
  1033. package/Tests/Runtime/DataStructures/DisjointSetTests.cs +1114 -0
  1034. package/Tests/Runtime/DataStructures/DisjointSetTests.cs.meta +3 -0
  1035. package/Tests/Runtime/DataStructures/FastOneOfTests.cs +966 -0
  1036. package/Tests/Runtime/DataStructures/FastOneOfTests.cs.meta +11 -0
  1037. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs +286 -0
  1038. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs.meta +11 -0
  1039. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs +414 -0
  1040. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs.meta +11 -0
  1041. package/Tests/Runtime/DataStructures/HeapTests.cs +1953 -0
  1042. package/Tests/Runtime/DataStructures/HeapTests.cs.meta +11 -0
  1043. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs +833 -0
  1044. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs.meta +3 -0
  1045. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs +297 -0
  1046. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs.meta +11 -0
  1047. package/Tests/Runtime/DataStructures/OctTree3DTests.cs +351 -0
  1048. package/Tests/Runtime/DataStructures/OctTree3DTests.cs.meta +11 -0
  1049. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs +71 -0
  1050. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs.meta +3 -0
  1051. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs +475 -0
  1052. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs.meta +11 -0
  1053. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs +660 -0
  1054. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs.meta +11 -0
  1055. package/Tests/Runtime/DataStructures/RTree2DTests.cs +823 -0
  1056. package/Tests/Runtime/DataStructures/RTree2DTests.cs.meta +3 -0
  1057. package/Tests/Runtime/DataStructures/RTree3DTests.cs +270 -0
  1058. package/Tests/Runtime/DataStructures/RTree3DTests.cs.meta +11 -0
  1059. package/Tests/Runtime/DataStructures/SparseSetTests.cs +1146 -0
  1060. package/Tests/Runtime/DataStructures/SparseSetTests.cs.meta +3 -0
  1061. package/Tests/Runtime/DataStructures/SpatialHashTests.cs +992 -0
  1062. package/Tests/Runtime/DataStructures/SpatialHashTests.cs.meta +11 -0
  1063. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs +351 -0
  1064. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs.meta +11 -0
  1065. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs +127 -0
  1066. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs.meta +11 -0
  1067. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs +218 -0
  1068. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs.meta +11 -0
  1069. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs +396 -0
  1070. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs.meta +11 -0
  1071. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +281 -0
  1072. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs.meta +11 -0
  1073. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs +127 -0
  1074. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs.meta +11 -0
  1075. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs +170 -0
  1076. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs.meta +11 -0
  1077. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs +474 -0
  1078. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs.meta +11 -0
  1079. package/Tests/Runtime/DataStructures/SphereTests.cs +806 -0
  1080. package/Tests/Runtime/DataStructures/SphereTests.cs.meta +3 -0
  1081. package/Tests/Runtime/DataStructures/StringWrapperTests.cs +333 -0
  1082. package/Tests/Runtime/DataStructures/StringWrapperTests.cs.meta +11 -0
  1083. package/Tests/Runtime/DataStructures/TimedCacheTests.cs +669 -0
  1084. package/Tests/Runtime/DataStructures/TimedCacheTests.cs.meta +11 -0
  1085. package/Tests/Runtime/DataStructures/TrieTests.cs +3385 -0
  1086. package/Tests/Runtime/DataStructures/TrieTests.cs.meta +11 -0
  1087. package/Tests/Runtime/DataStructures/UnbalancedKDTree2DTests.cs +565 -0
  1088. package/Tests/Runtime/DataStructures/{UnbalancedKDTreeTests.cs.meta → UnbalancedKDTree2DTests.cs.meta} +11 -11
  1089. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs +10 -0
  1090. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs.meta +11 -0
  1091. package/Tests/Runtime/DataStructures.meta +8 -8
  1092. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs +28 -0
  1093. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs.meta +11 -0
  1094. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +667 -0
  1095. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs.meta +11 -0
  1096. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs +230 -0
  1097. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs.meta +11 -0
  1098. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs +55 -0
  1099. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs.meta +11 -0
  1100. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +724 -438
  1101. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  1102. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs +403 -0
  1103. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs.meta +11 -0
  1104. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs +69 -0
  1105. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs.meta +11 -0
  1106. package/Tests/Runtime/Extensions/EnumExtensionTests.cs +809 -153
  1107. package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
  1108. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs +191 -0
  1109. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs.meta +11 -0
  1110. package/Tests/Runtime/Extensions/IListExtensionTests.cs +955 -169
  1111. package/Tests/Runtime/Extensions/IListExtensionTests.cs.meta +2 -2
  1112. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs +266 -58
  1113. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs.meta +2 -2
  1114. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs +721 -718
  1115. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs.meta +2 -2
  1116. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs +565 -0
  1117. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs.meta +3 -0
  1118. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs +100 -0
  1119. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs.meta +11 -0
  1120. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +719 -27
  1121. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  1122. package/Tests/Runtime/Extensions/StringExtensionTests.cs +2592 -31
  1123. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  1124. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs +166 -0
  1125. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs.meta +11 -0
  1126. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs +1446 -0
  1127. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs.meta +11 -0
  1128. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs +1779 -0
  1129. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs.meta +11 -0
  1130. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs +292 -0
  1131. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs.meta +11 -0
  1132. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs +260 -0
  1133. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs.meta +11 -0
  1134. package/Tests/Runtime/Extensions.meta +2 -2
  1135. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  1136. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  1137. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs +38 -0
  1138. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs.meta +11 -0
  1139. package/Tests/Runtime/Helper/DirectoryHelperTests.cs +347 -0
  1140. package/Tests/Runtime/Helper/DirectoryHelperTests.cs.meta +11 -0
  1141. package/Tests/Runtime/Helper/EnumerablesTests.cs +45 -0
  1142. package/Tests/Runtime/Helper/EnumerablesTests.cs.meta +11 -0
  1143. package/Tests/Runtime/Helper/FileHelperTests.cs +481 -0
  1144. package/Tests/Runtime/Helper/FileHelperTests.cs.meta +11 -0
  1145. package/Tests/Runtime/Helper/FormattingHelpersTests.cs +353 -0
  1146. package/Tests/Runtime/Helper/FormattingHelpersTests.cs.meta +11 -0
  1147. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs +27 -0
  1148. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs.meta +11 -0
  1149. package/Tests/Runtime/Helper/GeometryTests.cs +517 -0
  1150. package/Tests/Runtime/Helper/GeometryTests.cs.meta +3 -0
  1151. package/Tests/Runtime/Helper/HelpersTests.cs +749 -0
  1152. package/Tests/Runtime/Helper/HelpersTests.cs.meta +11 -0
  1153. package/Tests/Runtime/Helper/IterationHelpersTests.cs +173 -0
  1154. package/Tests/Runtime/Helper/IterationHelpersTests.cs.meta +11 -0
  1155. package/Tests/Runtime/Helper/LineHelperTests.cs +662 -0
  1156. package/Tests/Runtime/Helper/LineHelperTests.cs.meta +11 -0
  1157. package/Tests/Runtime/Helper/ObjectHelperTests.cs +444 -432
  1158. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  1159. package/Tests/Runtime/Helper/ObjectsTests.cs +363 -0
  1160. package/Tests/Runtime/Helper/ObjectsTests.cs.meta +3 -0
  1161. package/Tests/Runtime/Helper/PathHelperTests.cs +183 -0
  1162. package/Tests/Runtime/Helper/PathHelperTests.cs.meta +11 -0
  1163. package/Tests/Runtime/Helper/ReflectionHelperTests.cs +2199 -1493
  1164. package/Tests/Runtime/Helper/ReflectionHelperTests.cs.meta +2 -2
  1165. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs +192 -0
  1166. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs.meta +11 -0
  1167. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs +58 -0
  1168. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs.meta +11 -0
  1169. package/Tests/Runtime/Helper/SceneHelperTests.cs +77 -94
  1170. package/Tests/Runtime/Helper/SceneHelperTests.cs.meta +2 -2
  1171. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs +45 -0
  1172. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs.meta +11 -0
  1173. package/Tests/Runtime/Helper/WallMathTests.cs +1884 -233
  1174. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  1175. package/Tests/Runtime/Helper.meta +2 -2
  1176. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +560 -0
  1177. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs.meta +11 -0
  1178. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef +38 -0
  1179. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef.meta +7 -0
  1180. package/Tests/Runtime/Integrations/VContainer.meta +8 -0
  1181. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +591 -0
  1182. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs.meta +11 -0
  1183. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef +38 -0
  1184. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef.meta +7 -0
  1185. package/Tests/Runtime/Integrations/Zenject.meta +8 -0
  1186. package/Tests/Runtime/Integrations.meta +8 -0
  1187. package/Tests/Runtime/Math/Line2DTests.cs +594 -0
  1188. package/Tests/Runtime/Math/Line2DTests.cs.meta +11 -0
  1189. package/Tests/Runtime/Math/Line3DTests.cs +655 -0
  1190. package/Tests/Runtime/Math/Line3DTests.cs.meta +11 -0
  1191. package/Tests/Runtime/Math/LineTests.cs +480 -0
  1192. package/Tests/Runtime/Math/LineTests.cs.meta +11 -0
  1193. package/Tests/Runtime/Math/ParabolaTests.cs +477 -0
  1194. package/Tests/Runtime/Math/ParabolaTests.cs.meta +11 -0
  1195. package/Tests/Runtime/Math/PointPolygonCheckTests.cs +939 -0
  1196. package/Tests/Runtime/Math/PointPolygonCheckTests.cs.meta +11 -0
  1197. package/Tests/Runtime/Math/RangeTests.cs +197 -0
  1198. package/Tests/Runtime/Math/RangeTests.cs.meta +11 -0
  1199. package/Tests/Runtime/Math.meta +8 -0
  1200. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs +81 -0
  1201. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs.meta +11 -0
  1202. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs +421 -0
  1203. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs.meta +3 -0
  1204. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs +76 -76
  1205. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs.meta +2 -2
  1206. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs +161 -0
  1207. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs.meta +11 -0
  1208. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs +207 -0
  1209. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs.meta +3 -0
  1210. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +195 -181
  1211. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  1212. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +60 -61
  1213. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  1214. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +692 -0
  1215. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs.meta +11 -0
  1216. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +650 -0
  1217. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs.meta +11 -0
  1218. package/Tests/Runtime/Performance.meta +8 -8
  1219. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  1220. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  1221. package/Tests/Runtime/Random/IllusionFlowTests.cs +12 -12
  1222. package/Tests/Runtime/Random/IllusionFlowTests.cs.meta +2 -2
  1223. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
  1224. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs.meta +2 -2
  1225. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  1226. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  1227. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs +494 -0
  1228. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs.meta +3 -0
  1229. package/Tests/Runtime/Random/RandomStateSerializationTests.cs +304 -0
  1230. package/Tests/Runtime/Random/RandomStateSerializationTests.cs.meta +4 -0
  1231. package/Tests/Runtime/Random/RandomTestBase.cs +836 -787
  1232. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  1233. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  1234. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  1235. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  1236. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  1237. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  1238. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  1239. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  1240. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  1241. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  1242. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  1243. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  1244. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  1245. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  1246. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  1247. package/Tests/Runtime/Random/XoroShiroRandomTests.cs +9 -9
  1248. package/Tests/Runtime/Random/XoroShiroRandomTests.cs.meta +2 -2
  1249. package/Tests/Runtime/Random.meta +8 -8
  1250. package/Tests/Runtime/RuntimeTestTimeouts.cs +3 -0
  1251. package/Tests/Runtime/RuntimeTestTimeouts.cs.meta +11 -0
  1252. package/Tests/Runtime/Scenes/Test1.unity +723 -723
  1253. package/Tests/Runtime/Scenes/Test1.unity.meta +7 -7
  1254. package/Tests/Runtime/Scenes/Test2.unity +723 -723
  1255. package/Tests/Runtime/Scenes/Test2.unity.meta +7 -7
  1256. package/Tests/Runtime/Scenes.meta +2 -2
  1257. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs +67 -0
  1258. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs.meta +11 -0
  1259. package/Tests/Runtime/Serialization/BitSetJsonTests.cs +50 -0
  1260. package/Tests/Runtime/Serialization/BitSetJsonTests.cs.meta +11 -0
  1261. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs +67 -0
  1262. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs.meta +11 -0
  1263. package/Tests/Runtime/Serialization/DequeJsonTests.cs +70 -0
  1264. package/Tests/Runtime/Serialization/DequeJsonTests.cs.meta +11 -0
  1265. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs +25 -0
  1266. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs.meta +11 -0
  1267. package/Tests/Runtime/Serialization/JsonConverterTests.cs +1157 -0
  1268. package/Tests/Runtime/Serialization/JsonConverterTests.cs.meta +11 -0
  1269. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +239 -0
  1270. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs.meta +11 -0
  1271. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs +458 -0
  1272. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs.meta +3 -0
  1273. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +156 -156
  1274. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  1275. package/Tests/Runtime/Serialization/MathJsonTests.cs +79 -0
  1276. package/Tests/Runtime/Serialization/MathJsonTests.cs.meta +11 -0
  1277. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs +76 -0
  1278. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs.meta +11 -0
  1279. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs +80 -0
  1280. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs.meta +11 -0
  1281. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +257 -0
  1282. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs.meta +11 -0
  1283. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs +471 -0
  1284. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs.meta +3 -0
  1285. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs +169 -0
  1286. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs.meta +11 -0
  1287. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs +62 -0
  1288. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs.meta +11 -0
  1289. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +895 -0
  1290. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs.meta +3 -0
  1291. package/Tests/Runtime/Serialization/TypeConverterTests.cs +34 -0
  1292. package/Tests/Runtime/Serialization/TypeConverterTests.cs.meta +11 -0
  1293. package/Tests/Runtime/Serialization.meta +2 -2
  1294. package/Tests/Runtime/Tags/AttributeComponentTests.cs +174 -0
  1295. package/Tests/Runtime/Tags/AttributeComponentTests.cs.meta +3 -0
  1296. package/Tests/Runtime/Tags/AttributeDataTests.cs +312 -0
  1297. package/Tests/Runtime/Tags/AttributeDataTests.cs.meta +11 -0
  1298. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs +405 -0
  1299. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs.meta +3 -0
  1300. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs +147 -0
  1301. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs.meta +11 -0
  1302. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs +60 -0
  1303. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs.meta +3 -0
  1304. package/Tests/Runtime/Tags/EffectHandleTests.cs +61 -0
  1305. package/Tests/Runtime/Tags/EffectHandleTests.cs.meta +3 -0
  1306. package/Tests/Runtime/Tags/EffectHandlerTests.cs +270 -0
  1307. package/Tests/Runtime/Tags/EffectHandlerTests.cs.meta +3 -0
  1308. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs +39 -0
  1309. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs.meta +3 -0
  1310. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs +49 -0
  1311. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs.meta +3 -0
  1312. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs +28 -0
  1313. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs.meta +3 -0
  1314. package/Tests/Runtime/Tags/Helpers.meta +3 -0
  1315. package/Tests/Runtime/Tags/TagHandlerTests.cs +108 -0
  1316. package/Tests/Runtime/Tags/TagHandlerTests.cs.meta +3 -0
  1317. package/Tests/Runtime/Tags.meta +8 -0
  1318. package/Tests/Runtime/TestUtils/CommonTestBase.cs +213 -0
  1319. package/Tests/Runtime/TestUtils/CommonTestBase.cs.meta +11 -0
  1320. package/Tests/Runtime/TestUtils/GCAssert.cs +55 -0
  1321. package/Tests/Runtime/TestUtils/GCAssert.cs.meta +11 -0
  1322. package/Tests/Runtime/TestUtils/SpatialAssert.cs +33 -0
  1323. package/Tests/Runtime/TestUtils/SpatialAssert.cs.meta +11 -0
  1324. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs +195 -0
  1325. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs.meta +11 -0
  1326. package/Tests/Runtime/TestUtils.meta +8 -0
  1327. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs +144 -0
  1328. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs.meta +11 -0
  1329. package/Tests/Runtime/Utils/Ascii85Tests.cs +56 -0
  1330. package/Tests/Runtime/Utils/Ascii85Tests.cs.meta +11 -0
  1331. package/Tests/Runtime/Utils/BuffersTests.cs +1148 -741
  1332. package/Tests/Runtime/Utils/BuffersTests.cs.meta +2 -2
  1333. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs +31 -0
  1334. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs.meta +11 -0
  1335. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs +67 -0
  1336. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs.meta +11 -0
  1337. package/Tests/Runtime/Utils/ChildSpawnerTests.cs +490 -0
  1338. package/Tests/Runtime/Utils/ChildSpawnerTests.cs.meta +11 -0
  1339. package/Tests/Runtime/Utils/CircleLineRendererTests.cs +80 -0
  1340. package/Tests/Runtime/Utils/CircleLineRendererTests.cs.meta +11 -0
  1341. package/Tests/Runtime/Utils/CollisionProxyTests.cs +442 -0
  1342. package/Tests/Runtime/Utils/CollisionProxyTests.cs.meta +11 -0
  1343. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +353 -0
  1344. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs.meta +11 -0
  1345. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs +44 -0
  1346. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs.meta +11 -0
  1347. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +249 -0
  1348. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs.meta +11 -0
  1349. package/Tests/Runtime/Utils/LZMATests.cs +31 -0
  1350. package/Tests/Runtime/Utils/LZMATests.cs.meta +11 -0
  1351. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs +86 -0
  1352. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs.meta +11 -0
  1353. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +503 -0
  1354. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs.meta +11 -0
  1355. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs +34 -0
  1356. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs.meta +11 -0
  1357. package/Tests/Runtime/Utils/MatchTransformTests.cs +495 -0
  1358. package/Tests/Runtime/Utils/MatchTransformTests.cs.meta +11 -0
  1359. package/Tests/Runtime/Utils/OscillatorTests.cs +540 -0
  1360. package/Tests/Runtime/Utils/OscillatorTests.cs.meta +11 -0
  1361. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs +52 -0
  1362. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs.meta +11 -0
  1363. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs +766 -0
  1364. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs.meta +11 -0
  1365. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs +47 -0
  1366. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs.meta +11 -0
  1367. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs +361 -0
  1368. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs.meta +11 -0
  1369. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +383 -398
  1370. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  1371. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs +134 -0
  1372. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs.meta +11 -0
  1373. package/Tests/Runtime/Utils/StartTrackerTests.cs +24 -0
  1374. package/Tests/Runtime/Utils/StartTrackerTests.cs.meta +11 -0
  1375. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs +114 -0
  1376. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs.meta +11 -0
  1377. package/Tests/Runtime/Utils/TextureScaleTests.cs +298 -0
  1378. package/Tests/Runtime/Utils/TextureScaleTests.cs.meta +3 -0
  1379. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs +36 -0
  1380. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs.meta +11 -0
  1381. package/Tests/Runtime/Utils/TypeNameSorterTests.cs +34 -0
  1382. package/Tests/Runtime/Utils/TypeNameSorterTests.cs.meta +11 -0
  1383. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs +63 -0
  1384. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs.meta +11 -0
  1385. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs +59 -0
  1386. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs.meta +11 -0
  1387. package/Tests/Runtime/Utils.meta +2 -2
  1388. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs +266 -0
  1389. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs.meta +11 -0
  1390. package/Tests/Runtime/Visuals/EnhancedImageTests.cs +184 -0
  1391. package/Tests/Runtime/Visuals/EnhancedImageTests.cs.meta +11 -0
  1392. package/Tests/Runtime/Visuals/LayeredImageTests.cs +422 -0
  1393. package/Tests/Runtime/Visuals/LayeredImageTests.cs.meta +11 -0
  1394. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +132 -0
  1395. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs.meta +11 -0
  1396. package/Tests/Runtime/Visuals.meta +3 -0
  1397. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +24 -23
  1398. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  1399. package/Tests/Runtime.meta +8 -8
  1400. package/Tests.meta +8 -8
  1401. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset +63 -63
  1402. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset.meta +8 -8
  1403. package/URP/VolumeProfiles.meta +8 -8
  1404. package/URP.meta +8 -8
  1405. package/node_modules.meta +8 -0
  1406. package/package.json +95 -38
  1407. package/package.json.meta +7 -7
  1408. package/scripts/check-eol.ps1 +52 -0
  1409. package/scripts/check-eol.ps1.meta +7 -0
  1410. package/scripts/clean-nul.ps1 +29 -0
  1411. package/scripts/clean-nul.ps1.meta +7 -0
  1412. package/scripts/lint-doc-links.ps1 +80 -0
  1413. package/scripts/lint-doc-links.ps1.meta +7 -0
  1414. package/scripts/normalize-eol.ps1 +71 -0
  1415. package/scripts/normalize-eol.ps1.meta +7 -0
  1416. package/scripts.meta +8 -0
  1417. package/Editor/Sprites/ProjectAnimationSettings.cs +0 -50
  1418. package/Editor/Sprites/ProjectAnimationSettings.cs.meta +0 -3
  1419. package/Editor/Sprites/TextureSettingsApplier.cs +0 -178
  1420. package/Editor/Sprites/TextureSettingsApplier.cs.meta +0 -3
  1421. package/Runtime/Core/Attributes/ParentComponent.cs +0 -189
  1422. package/Runtime/Core/DataStructure/KDTree.cs +0 -434
  1423. package/Runtime/Core/DataStructure/QuadTree.cs +0 -431
  1424. package/Runtime/Core/DataStructure/RTree.cs +0 -356
  1425. package/Runtime/Core/Extension/HashSetExtensions.cs +0 -12
  1426. package/Runtime/Core/Extension/HashSetExtensions.cs.meta +0 -11
  1427. package/Runtime/Core/Math/Line.cs +0 -55
  1428. package/Runtime/Core/Math/Line.cs.meta +0 -11
  1429. package/Runtime/Core/Math/XXHash.cs +0 -310
  1430. package/Runtime/Core/Math/XXHash.cs.meta +0 -11
  1431. package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +0 -40
  1432. package/Tests/Runtime/Components.meta +0 -3
  1433. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +0 -14
  1434. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +0 -14
  1435. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +0 -11
  1436. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +0 -130
  1437. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +0 -11
  1438. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +0 -14
  1439. package/Tests/Runtime/Helper/FormattingHelperTests.cs +0 -129
  1440. package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +0 -3
  1441. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +0 -14
  1442. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +0 -11
  1443. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +0 -14
  1444. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +0 -11
  1445. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +0 -158
  1446. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +0 -11
  1447. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +0 -14
  1448. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +0 -11
  1449. package/Third Party Notices.md +0 -1
@@ -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
+ }