com.wallstop-studios.unity-helpers 2.0.0-rc58 → 2.0.0-rc60
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.
- package/.config/dotnet-tools.json +9 -9
- package/.editorconfig +184 -184
- package/.gitattributes +63 -63
- package/.github/workflows/npm-publish.yml +75 -66
- package/.pre-commit-config.yaml +21 -21
- package/Editor/AnimationCopier.cs +181 -181
- package/Editor/AnimationCopier.cs.meta +2 -2
- package/Editor/AnimationCreator.cs +253 -253
- package/Editor/AnimationCreator.cs.meta +11 -11
- package/Editor/AnimationEventEditor.cs +887 -887
- package/Editor/AnimatorControllerCopier.cs +162 -162
- package/Editor/AnimatorControllerCopier.cs.meta +2 -2
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/FitTextureSizeWizard.cs +147 -147
- package/Editor/FitTextureSizeWizard.cs.meta +2 -2
- package/Editor/PrefabCheckWizard.cs +170 -170
- package/Editor/PrefabCheckWizard.cs.meta +11 -11
- package/Editor/SpriteSettingsApplier.cs +272 -272
- package/Editor/SpriteSettingsApplier.cs.meta +2 -2
- package/Editor/StringInListeDrawer.cs +56 -56
- package/Editor/TextureResizerWizard.cs +181 -181
- package/Editor/TextureResizerWizard.cs.meta +2 -2
- package/Editor/TextureSettingsApplier.cs +178 -178
- package/Editor/TextureSettingsApplier.cs.meta +2 -2
- package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
- package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
- package/Editor/Utils/EditorUtilities.cs +22 -22
- package/Editor/Utils/EditorUtilities.cs.meta +11 -11
- package/Editor/Utils.meta +8 -8
- package/Editor/WShowIfPropertyDrawer.cs +63 -63
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
- package/LICENSE +21 -21
- package/LICENSE.md +6 -6
- package/LICENSE.meta +7 -7
- package/README.md +177 -177
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
- package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
- package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
- package/Runtime/Binaries.meta +8 -8
- package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
- package/Runtime/Core/Attributes/ChildComponentAttribute.cs +213 -209
- package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
- package/Runtime/Core/Attributes/ParentComponent.cs +185 -185
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +117 -117
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/WShowIfAttribute.cs +16 -16
- package/Runtime/Core/Attributes.meta +8 -8
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
- package/Runtime/Core/DataStructure/Circle.cs +50 -50
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +193 -153
- package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
- package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/KDTree.cs +292 -292
- package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/QuadTree.cs +287 -287
- package/Runtime/Core/DataStructure/RTree.cs +346 -346
- package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
- package/Runtime/Core/DataStructure/TimedCache.cs +66 -66
- package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
- package/Runtime/Core/Extension/AsyncOperationExtensions.cs +110 -110
- package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
- package/Runtime/Core/Extension/ColorExtensions.cs +629 -629
- package/Runtime/Core/Extension/DictionaryExtensions.cs +279 -279
- package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
- package/Runtime/Core/Extension/EnumExtensions.cs +37 -37
- package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
- package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
- package/Runtime/Core/Extension/IListExtensions.cs +146 -106
- package/Runtime/Core/Extension/LoggingExtensions.cs +264 -258
- package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
- package/Runtime/Core/Extension/SerializedPropertyExtensions.cs +157 -157
- package/Runtime/Core/Extension/StringExtensions.cs +180 -151
- package/Runtime/Core/Extension/UnityExtensions.cs +1608 -1608
- package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
- package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
- package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
- package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
- package/Runtime/Core/Helper/DirectoryHelper.cs +132 -0
- package/Runtime/Core/Helper/DirectoryHelper.cs.meta +3 -0
- package/Runtime/Core/Helper/Enumerables.cs +17 -17
- package/Runtime/Core/Helper/FormattingHelpers.cs +32 -32
- package/Runtime/Core/Helper/Geometry.cs +43 -43
- package/Runtime/Core/Helper/Helpers.cs +722 -722
- package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
- package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
- package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
- package/Runtime/Core/Helper/Objects.cs +769 -769
- package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
- package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
- package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs +189 -189
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +452 -452
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/SceneHelper.cs +209 -209
- package/Runtime/Core/Helper/SpriteHelpers.cs +41 -41
- package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/StringInList.cs +31 -31
- package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
- package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +82 -82
- package/Runtime/Core/Helper/WallMath.cs +166 -166
- package/Runtime/Core/Math/Line.cs +55 -55
- package/Runtime/Core/Math/Parabola.cs +47 -47
- package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
- package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
- package/Runtime/Core/Math/Range.cs +92 -92
- package/Runtime/Core/Math/XXHash.cs +310 -310
- package/Runtime/Core/Math/XXHash.cs.meta +11 -11
- package/Runtime/Core/Model/Direction.cs +43 -43
- package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
- package/Runtime/Core/OneOf/None.cs +4 -4
- package/Runtime/Core/Random/AbstractRandom.cs +585 -585
- package/Runtime/Core/Random/DotNetRandom.cs +54 -54
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +161 -161
- package/Runtime/Core/Random/LinearCongruentialGenerator.cs +49 -49
- package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
- package/Runtime/Core/Random/PRNG.cs +7 -7
- package/Runtime/Core/Random/PRNG.cs.meta +2 -2
- package/Runtime/Core/Random/PcgRandom.cs +149 -149
- package/Runtime/Core/Random/PerlinNoise.cs +369 -369
- package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
- package/Runtime/Core/Random/RandomState.cs +131 -131
- package/Runtime/Core/Random/RandomUtilities.cs +26 -26
- package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
- package/Runtime/Core/Random/RomuDuo.cs +116 -116
- package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
- package/Runtime/Core/Random/SplitMix64.cs +94 -94
- package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
- package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
- package/Runtime/Core/Random/SystemRandom.cs +162 -162
- package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
- package/Runtime/Core/Random/UnityRandom.cs +57 -57
- package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
- package/Runtime/Core/Random/WyRandom.cs +121 -121
- package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
- package/Runtime/Core/Random/XorShiftRandom.cs +52 -52
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XorShiroRandom.cs +119 -119
- package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
- package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +37 -37
- package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +218 -218
- package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +28 -28
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
- package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
- package/Runtime/Core/Serialization/Serializer.cs +195 -195
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +113 -113
- package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
- package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
- package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
- package/Runtime/UI/LayeredImage.cs +364 -364
- package/Runtime/UI/LayeredImage.cs.meta +2 -2
- package/Runtime/UI.meta +2 -2
- package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
- package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
- package/Runtime/Utils/Buffers.cs +33 -33
- package/Runtime/Utils/CenterPointOffset.cs +30 -30
- package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
- package/Runtime/Utils/CircleLineRenderer.cs +134 -134
- package/Runtime/Utils/CoroutineHandler.cs +4 -4
- package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
- package/Runtime/Utils/DeferredDisposalResult.cs +23 -23
- package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
- package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
- package/Runtime/Utils/Oscillator.cs +27 -27
- package/Runtime/Utils/RuntimeSingleton.cs +71 -69
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/SetTextureImportData.cs +69 -69
- package/Runtime/Utils/SpriteRendererMetadata.cs +374 -374
- package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
- package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
- package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
- package/Runtime/Utils/StartTracker.cs +15 -0
- package/Runtime/Utils/StartTracker.cs.meta +3 -0
- package/Runtime/Utils/TextureScale.cs +179 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/Utils/UnityObjectNameComparer.cs +33 -0
- package/Runtime/Utils/UnityObjectNameComparer.cs.meta +3 -0
- package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
- package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
- package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs +34 -34
- package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs.meta +2 -2
- package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +40 -40
- package/Tests/Runtime/Components.meta +2 -2
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures.meta +8 -8
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs +128 -128
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +104 -104
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
- package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions.meta +2 -2
- package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
- package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/FormattingHelperTests.cs +129 -129
- package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
- package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ReflectionHelperTests.cs +536 -536
- package/Tests/Runtime/Helper/SceneHelperTests.cs +94 -94
- package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
- package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
- package/Tests/Runtime/Helper.meta +2 -2
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs +180 -157
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +61 -61
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/Performance.meta +8 -8
- package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
- package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
- package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
- package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
- package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
- package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
- package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
- package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
- package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random.meta +8 -8
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs +156 -156
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
- package/Tests/Runtime/Serialization.meta +2 -2
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
- package/Tests/Runtime/Utils.meta +2 -2
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
- package/Tests/Runtime.meta +8 -8
- package/package.json +38 -38
|
@@ -1,399 +1,399 @@
|
|
|
1
|
-
namespace UnityHelpers.Tests.Utils
|
|
2
|
-
{
|
|
3
|
-
using System.Collections;
|
|
4
|
-
using System.Collections.Generic;
|
|
5
|
-
using System.Linq;
|
|
6
|
-
using Core.Helper;
|
|
7
|
-
using Core.Random;
|
|
8
|
-
using NUnit.Framework;
|
|
9
|
-
using UnityEngine;
|
|
10
|
-
using UnityEngine.TestTools;
|
|
11
|
-
using UnityHelpers.Utils;
|
|
12
|
-
|
|
13
|
-
public sealed class SpriteRendererMetadataTests
|
|
14
|
-
{
|
|
15
|
-
private readonly List<GameObject> _spawned = new();
|
|
16
|
-
|
|
17
|
-
[TearDown]
|
|
18
|
-
public void Cleanup()
|
|
19
|
-
{
|
|
20
|
-
foreach (GameObject spawned in _spawned)
|
|
21
|
-
{
|
|
22
|
-
if (spawned == null)
|
|
23
|
-
{
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
Object.Destroy(spawned);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
_spawned.Clear();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
private SpriteRendererMetadata CreateMetadata()
|
|
34
|
-
{
|
|
35
|
-
GameObject go = new(
|
|
36
|
-
"TestSpriteRendererMetadata",
|
|
37
|
-
typeof(SpriteRenderer),
|
|
38
|
-
typeof(SpriteRendererMetadata)
|
|
39
|
-
);
|
|
40
|
-
_spawned.Add(go);
|
|
41
|
-
return go.GetComponent<SpriteRendererMetadata>();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private Material CreateMaterial()
|
|
45
|
-
{
|
|
46
|
-
return new Material(Shader.Find("Sprites/Default"));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
private Color CreateColor()
|
|
50
|
-
{
|
|
51
|
-
IRandom random = PRNG.Instance;
|
|
52
|
-
Color color = new(
|
|
53
|
-
random.NextFloat(),
|
|
54
|
-
random.NextFloat(),
|
|
55
|
-
random.NextFloat(),
|
|
56
|
-
random.NextFloat()
|
|
57
|
-
);
|
|
58
|
-
return color;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
[UnityTest]
|
|
62
|
-
public IEnumerator Initialization()
|
|
63
|
-
{
|
|
64
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
65
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
66
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
67
|
-
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
68
|
-
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
69
|
-
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
70
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
71
|
-
Assert.IsTrue(metadata.Colors.Contains(metadata.OriginalColor));
|
|
72
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
73
|
-
Assert.IsTrue(metadata.Materials.Contains(metadata.OriginalMaterial));
|
|
74
|
-
yield break;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
[UnityTest]
|
|
78
|
-
public IEnumerator PushColor()
|
|
79
|
-
{
|
|
80
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
81
|
-
Color originalColor = metadata.OriginalColor;
|
|
82
|
-
Color newColor = originalColor;
|
|
83
|
-
Material originalMaterial = metadata.OriginalMaterial;
|
|
84
|
-
do
|
|
85
|
-
{
|
|
86
|
-
newColor.r = PRNG.Instance.NextFloat();
|
|
87
|
-
} while (newColor == originalColor);
|
|
88
|
-
|
|
89
|
-
SpriteRendererMetadata second = CreateMetadata();
|
|
90
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
91
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
92
|
-
metadata.PushColor(second, newColor);
|
|
93
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
94
|
-
Assert.AreEqual(newColor, metadata.CurrentColor);
|
|
95
|
-
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
96
|
-
Assert.AreEqual(originalColor, metadata.OriginalColor);
|
|
97
|
-
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
98
|
-
|
|
99
|
-
Color updatedColor = newColor;
|
|
100
|
-
do
|
|
101
|
-
{
|
|
102
|
-
updatedColor.g = PRNG.Instance.NextFloat();
|
|
103
|
-
} while (updatedColor == newColor);
|
|
104
|
-
|
|
105
|
-
metadata.PushColor(spriteRenderer, updatedColor);
|
|
106
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
107
|
-
Assert.AreEqual(updatedColor, metadata.CurrentColor);
|
|
108
|
-
Assert.AreEqual(3, metadata.Colors.Count());
|
|
109
|
-
Assert.IsTrue(metadata.Colors.Contains(originalColor));
|
|
110
|
-
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
111
|
-
Assert.IsTrue(metadata.Colors.Contains(updatedColor));
|
|
112
|
-
Assert.AreEqual(originalColor, metadata.OriginalColor);
|
|
113
|
-
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
114
|
-
|
|
115
|
-
Color latestColor = updatedColor;
|
|
116
|
-
do
|
|
117
|
-
{
|
|
118
|
-
latestColor.b = PRNG.Instance.NextFloat();
|
|
119
|
-
} while (latestColor == updatedColor);
|
|
120
|
-
|
|
121
|
-
metadata.PushColor(second, latestColor);
|
|
122
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
123
|
-
Assert.AreEqual(latestColor, metadata.CurrentColor);
|
|
124
|
-
Assert.AreEqual(3, metadata.Colors.Count());
|
|
125
|
-
// Should be replaced
|
|
126
|
-
Assert.IsFalse(metadata.Colors.Contains(newColor));
|
|
127
|
-
do
|
|
128
|
-
{
|
|
129
|
-
newColor.a = PRNG.Instance.NextFloat();
|
|
130
|
-
} while (newColor == latestColor);
|
|
131
|
-
|
|
132
|
-
metadata.PushColor(second, newColor);
|
|
133
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
134
|
-
Assert.AreEqual(newColor, metadata.CurrentColor);
|
|
135
|
-
Assert.AreEqual(3, metadata.Colors.Count());
|
|
136
|
-
Assert.IsTrue(metadata.Colors.Contains(originalColor));
|
|
137
|
-
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
138
|
-
Assert.IsTrue(metadata.Colors.Contains(updatedColor));
|
|
139
|
-
|
|
140
|
-
metadata.PushColor(second, newColor);
|
|
141
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
142
|
-
Assert.AreEqual(newColor, metadata.CurrentColor);
|
|
143
|
-
Assert.AreEqual(3, metadata.Colors.Count());
|
|
144
|
-
Assert.IsTrue(metadata.Colors.Contains(originalColor));
|
|
145
|
-
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
146
|
-
Assert.IsTrue(metadata.Colors.Contains(updatedColor));
|
|
147
|
-
yield break;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
[UnityTest]
|
|
151
|
-
public IEnumerator PushColorIdempotent()
|
|
152
|
-
{
|
|
153
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
154
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
155
|
-
Color color = CreateColor();
|
|
156
|
-
|
|
157
|
-
void Verify()
|
|
158
|
-
{
|
|
159
|
-
metadata.PushColor(spriteRenderer, color);
|
|
160
|
-
Assert.AreEqual(spriteRenderer.color, color);
|
|
161
|
-
Assert.AreEqual(color, metadata.CurrentColor);
|
|
162
|
-
Assert.AreEqual(2, metadata.Colors.Count());
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
for (int i = 0; i < 100; ++i)
|
|
166
|
-
{
|
|
167
|
-
Verify();
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
yield break;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
[UnityTest]
|
|
174
|
-
public IEnumerator PushMaterialIdempotent()
|
|
175
|
-
{
|
|
176
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
177
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
178
|
-
Material material = CreateMaterial();
|
|
179
|
-
|
|
180
|
-
void Verify()
|
|
181
|
-
{
|
|
182
|
-
metadata.PushMaterial(spriteRenderer, material);
|
|
183
|
-
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
184
|
-
Assert.AreEqual(2, metadata.Materials.Count());
|
|
185
|
-
Assert.IsTrue(metadata.Materials.Contains(spriteRenderer.material));
|
|
186
|
-
Assert.IsTrue(metadata.Materials.Contains(metadata.OriginalMaterial));
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
for (int i = 0; i < 100; ++i)
|
|
190
|
-
{
|
|
191
|
-
Verify();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
yield break;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
[UnityTest]
|
|
198
|
-
public IEnumerator PopColorIdempotent()
|
|
199
|
-
{
|
|
200
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
201
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
202
|
-
Color originalColor = spriteRenderer.color;
|
|
203
|
-
Color color = CreateColor();
|
|
204
|
-
metadata.PushColor(spriteRenderer, color);
|
|
205
|
-
|
|
206
|
-
void Verify()
|
|
207
|
-
{
|
|
208
|
-
metadata.PopColor(spriteRenderer);
|
|
209
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
210
|
-
Assert.AreEqual(originalColor, metadata.CurrentColor);
|
|
211
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
for (int i = 0; i < 100; ++i)
|
|
215
|
-
{
|
|
216
|
-
Verify();
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
yield break;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
[UnityTest]
|
|
223
|
-
public IEnumerator PopMaterialIdempotent()
|
|
224
|
-
{
|
|
225
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
226
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
227
|
-
Material material = CreateMaterial();
|
|
228
|
-
|
|
229
|
-
metadata.PushMaterial(spriteRenderer, material);
|
|
230
|
-
|
|
231
|
-
void Verify()
|
|
232
|
-
{
|
|
233
|
-
metadata.PopMaterial(spriteRenderer);
|
|
234
|
-
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
235
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
236
|
-
Assert.IsTrue(metadata.Materials.Contains(spriteRenderer.material));
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
for (int i = 0; i < 100; ++i)
|
|
240
|
-
{
|
|
241
|
-
Verify();
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
yield break;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
[UnityTest]
|
|
248
|
-
public IEnumerator CannotSelfPushColor()
|
|
249
|
-
{
|
|
250
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
251
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
252
|
-
Color color = CreateColor();
|
|
253
|
-
Color originalColor = metadata.OriginalColor;
|
|
254
|
-
metadata.PushColor(metadata, color);
|
|
255
|
-
Assert.AreEqual(originalColor, metadata.CurrentColor);
|
|
256
|
-
Assert.AreEqual(originalColor, spriteRenderer.color);
|
|
257
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
258
|
-
yield break;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
[UnityTest]
|
|
262
|
-
public IEnumerator CannotSelfPopColor()
|
|
263
|
-
{
|
|
264
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
265
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
266
|
-
Color originalColor = metadata.OriginalColor;
|
|
267
|
-
metadata.PopColor(metadata);
|
|
268
|
-
Assert.AreEqual(originalColor, metadata.CurrentColor);
|
|
269
|
-
Assert.AreEqual(originalColor, spriteRenderer.color);
|
|
270
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
271
|
-
yield break;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
[UnityTest]
|
|
275
|
-
public IEnumerator CannotSelfPopMaterial()
|
|
276
|
-
{
|
|
277
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
278
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
279
|
-
Material originalMaterial = metadata.OriginalMaterial;
|
|
280
|
-
metadata.PopMaterial(metadata);
|
|
281
|
-
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
282
|
-
Assert.AreEqual(originalMaterial, spriteRenderer.material);
|
|
283
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
284
|
-
yield break;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
[UnityTest]
|
|
288
|
-
public IEnumerator CannotSelfPushMaterial()
|
|
289
|
-
{
|
|
290
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
291
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
292
|
-
Material material = CreateMaterial();
|
|
293
|
-
Material originalMaterial = metadata.OriginalMaterial;
|
|
294
|
-
metadata.PushMaterial(metadata, material);
|
|
295
|
-
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
296
|
-
Assert.AreEqual(originalMaterial, spriteRenderer.material);
|
|
297
|
-
Assert.AreNotEqual(material, spriteRenderer.material);
|
|
298
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
299
|
-
yield break;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
[UnityTest]
|
|
303
|
-
public IEnumerator EnableDisableColor()
|
|
304
|
-
{
|
|
305
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
306
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
307
|
-
Color color = CreateColor();
|
|
308
|
-
metadata.PushColor(spriteRenderer, color);
|
|
309
|
-
Assert.AreEqual(color, metadata.CurrentColor);
|
|
310
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
311
|
-
Assert.AreEqual(2, metadata.Colors.Count());
|
|
312
|
-
|
|
313
|
-
metadata.enabled = false;
|
|
314
|
-
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
315
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
316
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
317
|
-
|
|
318
|
-
metadata.enabled = true;
|
|
319
|
-
Assert.AreEqual(color, metadata.CurrentColor);
|
|
320
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
321
|
-
Assert.AreEqual(2, metadata.Colors.Count());
|
|
322
|
-
yield break;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
[UnityTest]
|
|
326
|
-
public IEnumerator EnableDisableMaterial()
|
|
327
|
-
{
|
|
328
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
329
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
330
|
-
Material material = CreateMaterial();
|
|
331
|
-
metadata.PushMaterial(spriteRenderer, material);
|
|
332
|
-
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
333
|
-
Assert.AreEqual(2, metadata.Materials.Count());
|
|
334
|
-
|
|
335
|
-
metadata.enabled = false;
|
|
336
|
-
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
337
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
338
|
-
|
|
339
|
-
metadata.enabled = true;
|
|
340
|
-
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
341
|
-
Assert.AreEqual(2, metadata.Materials.Count());
|
|
342
|
-
yield break;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
[UnityTest]
|
|
346
|
-
public IEnumerator EnableDisableWithRemoveColor()
|
|
347
|
-
{
|
|
348
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
349
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
350
|
-
Color color = CreateColor();
|
|
351
|
-
metadata.PushColor(spriteRenderer, color);
|
|
352
|
-
Assert.AreEqual(color, metadata.CurrentColor);
|
|
353
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
354
|
-
Assert.AreEqual(2, metadata.Colors.Count());
|
|
355
|
-
|
|
356
|
-
metadata.enabled = false;
|
|
357
|
-
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
358
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
359
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
360
|
-
|
|
361
|
-
metadata.PopColor(spriteRenderer);
|
|
362
|
-
|
|
363
|
-
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
364
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
365
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
366
|
-
|
|
367
|
-
metadata.enabled = true;
|
|
368
|
-
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
369
|
-
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
370
|
-
Assert.AreEqual(1, metadata.Colors.Count());
|
|
371
|
-
yield break;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
[UnityTest]
|
|
375
|
-
public IEnumerator EnableDisableWithRemoveMaterial()
|
|
376
|
-
{
|
|
377
|
-
SpriteRendererMetadata metadata = CreateMetadata();
|
|
378
|
-
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
379
|
-
Material material = CreateMaterial();
|
|
380
|
-
metadata.PushMaterial(spriteRenderer, material);
|
|
381
|
-
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
382
|
-
Assert.AreEqual(2, metadata.Materials.Count());
|
|
383
|
-
|
|
384
|
-
metadata.enabled = false;
|
|
385
|
-
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
386
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
387
|
-
|
|
388
|
-
metadata.PopMaterial(spriteRenderer);
|
|
389
|
-
|
|
390
|
-
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
391
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
392
|
-
|
|
393
|
-
metadata.enabled = true;
|
|
394
|
-
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
395
|
-
Assert.AreEqual(1, metadata.Materials.Count());
|
|
396
|
-
yield break;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
}
|
|
1
|
+
namespace UnityHelpers.Tests.Utils
|
|
2
|
+
{
|
|
3
|
+
using System.Collections;
|
|
4
|
+
using System.Collections.Generic;
|
|
5
|
+
using System.Linq;
|
|
6
|
+
using Core.Helper;
|
|
7
|
+
using Core.Random;
|
|
8
|
+
using NUnit.Framework;
|
|
9
|
+
using UnityEngine;
|
|
10
|
+
using UnityEngine.TestTools;
|
|
11
|
+
using UnityHelpers.Utils;
|
|
12
|
+
|
|
13
|
+
public sealed class SpriteRendererMetadataTests
|
|
14
|
+
{
|
|
15
|
+
private readonly List<GameObject> _spawned = new();
|
|
16
|
+
|
|
17
|
+
[TearDown]
|
|
18
|
+
public void Cleanup()
|
|
19
|
+
{
|
|
20
|
+
foreach (GameObject spawned in _spawned)
|
|
21
|
+
{
|
|
22
|
+
if (spawned == null)
|
|
23
|
+
{
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
Object.Destroy(spawned);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_spawned.Clear();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
private SpriteRendererMetadata CreateMetadata()
|
|
34
|
+
{
|
|
35
|
+
GameObject go = new(
|
|
36
|
+
"TestSpriteRendererMetadata",
|
|
37
|
+
typeof(SpriteRenderer),
|
|
38
|
+
typeof(SpriteRendererMetadata)
|
|
39
|
+
);
|
|
40
|
+
_spawned.Add(go);
|
|
41
|
+
return go.GetComponent<SpriteRendererMetadata>();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
private Material CreateMaterial()
|
|
45
|
+
{
|
|
46
|
+
return new Material(Shader.Find("Sprites/Default"));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private Color CreateColor()
|
|
50
|
+
{
|
|
51
|
+
IRandom random = PRNG.Instance;
|
|
52
|
+
Color color = new(
|
|
53
|
+
random.NextFloat(),
|
|
54
|
+
random.NextFloat(),
|
|
55
|
+
random.NextFloat(),
|
|
56
|
+
random.NextFloat()
|
|
57
|
+
);
|
|
58
|
+
return color;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
[UnityTest]
|
|
62
|
+
public IEnumerator Initialization()
|
|
63
|
+
{
|
|
64
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
65
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
66
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
67
|
+
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
68
|
+
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
69
|
+
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
70
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
71
|
+
Assert.IsTrue(metadata.Colors.Contains(metadata.OriginalColor));
|
|
72
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
73
|
+
Assert.IsTrue(metadata.Materials.Contains(metadata.OriginalMaterial));
|
|
74
|
+
yield break;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
[UnityTest]
|
|
78
|
+
public IEnumerator PushColor()
|
|
79
|
+
{
|
|
80
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
81
|
+
Color originalColor = metadata.OriginalColor;
|
|
82
|
+
Color newColor = originalColor;
|
|
83
|
+
Material originalMaterial = metadata.OriginalMaterial;
|
|
84
|
+
do
|
|
85
|
+
{
|
|
86
|
+
newColor.r = PRNG.Instance.NextFloat();
|
|
87
|
+
} while (newColor == originalColor);
|
|
88
|
+
|
|
89
|
+
SpriteRendererMetadata second = CreateMetadata();
|
|
90
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
91
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
92
|
+
metadata.PushColor(second, newColor);
|
|
93
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
94
|
+
Assert.AreEqual(newColor, metadata.CurrentColor);
|
|
95
|
+
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
96
|
+
Assert.AreEqual(originalColor, metadata.OriginalColor);
|
|
97
|
+
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
98
|
+
|
|
99
|
+
Color updatedColor = newColor;
|
|
100
|
+
do
|
|
101
|
+
{
|
|
102
|
+
updatedColor.g = PRNG.Instance.NextFloat();
|
|
103
|
+
} while (updatedColor == newColor);
|
|
104
|
+
|
|
105
|
+
metadata.PushColor(spriteRenderer, updatedColor);
|
|
106
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
107
|
+
Assert.AreEqual(updatedColor, metadata.CurrentColor);
|
|
108
|
+
Assert.AreEqual(3, metadata.Colors.Count());
|
|
109
|
+
Assert.IsTrue(metadata.Colors.Contains(originalColor));
|
|
110
|
+
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
111
|
+
Assert.IsTrue(metadata.Colors.Contains(updatedColor));
|
|
112
|
+
Assert.AreEqual(originalColor, metadata.OriginalColor);
|
|
113
|
+
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
114
|
+
|
|
115
|
+
Color latestColor = updatedColor;
|
|
116
|
+
do
|
|
117
|
+
{
|
|
118
|
+
latestColor.b = PRNG.Instance.NextFloat();
|
|
119
|
+
} while (latestColor == updatedColor);
|
|
120
|
+
|
|
121
|
+
metadata.PushColor(second, latestColor);
|
|
122
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
123
|
+
Assert.AreEqual(latestColor, metadata.CurrentColor);
|
|
124
|
+
Assert.AreEqual(3, metadata.Colors.Count());
|
|
125
|
+
// Should be replaced
|
|
126
|
+
Assert.IsFalse(metadata.Colors.Contains(newColor));
|
|
127
|
+
do
|
|
128
|
+
{
|
|
129
|
+
newColor.a = PRNG.Instance.NextFloat();
|
|
130
|
+
} while (newColor == latestColor);
|
|
131
|
+
|
|
132
|
+
metadata.PushColor(second, newColor);
|
|
133
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
134
|
+
Assert.AreEqual(newColor, metadata.CurrentColor);
|
|
135
|
+
Assert.AreEqual(3, metadata.Colors.Count());
|
|
136
|
+
Assert.IsTrue(metadata.Colors.Contains(originalColor));
|
|
137
|
+
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
138
|
+
Assert.IsTrue(metadata.Colors.Contains(updatedColor));
|
|
139
|
+
|
|
140
|
+
metadata.PushColor(second, newColor);
|
|
141
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
142
|
+
Assert.AreEqual(newColor, metadata.CurrentColor);
|
|
143
|
+
Assert.AreEqual(3, metadata.Colors.Count());
|
|
144
|
+
Assert.IsTrue(metadata.Colors.Contains(originalColor));
|
|
145
|
+
Assert.IsTrue(metadata.Colors.Contains(newColor));
|
|
146
|
+
Assert.IsTrue(metadata.Colors.Contains(updatedColor));
|
|
147
|
+
yield break;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
[UnityTest]
|
|
151
|
+
public IEnumerator PushColorIdempotent()
|
|
152
|
+
{
|
|
153
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
154
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
155
|
+
Color color = CreateColor();
|
|
156
|
+
|
|
157
|
+
void Verify()
|
|
158
|
+
{
|
|
159
|
+
metadata.PushColor(spriteRenderer, color);
|
|
160
|
+
Assert.AreEqual(spriteRenderer.color, color);
|
|
161
|
+
Assert.AreEqual(color, metadata.CurrentColor);
|
|
162
|
+
Assert.AreEqual(2, metadata.Colors.Count());
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
for (int i = 0; i < 100; ++i)
|
|
166
|
+
{
|
|
167
|
+
Verify();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
yield break;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
[UnityTest]
|
|
174
|
+
public IEnumerator PushMaterialIdempotent()
|
|
175
|
+
{
|
|
176
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
177
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
178
|
+
Material material = CreateMaterial();
|
|
179
|
+
|
|
180
|
+
void Verify()
|
|
181
|
+
{
|
|
182
|
+
metadata.PushMaterial(spriteRenderer, material);
|
|
183
|
+
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
184
|
+
Assert.AreEqual(2, metadata.Materials.Count());
|
|
185
|
+
Assert.IsTrue(metadata.Materials.Contains(spriteRenderer.material));
|
|
186
|
+
Assert.IsTrue(metadata.Materials.Contains(metadata.OriginalMaterial));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
for (int i = 0; i < 100; ++i)
|
|
190
|
+
{
|
|
191
|
+
Verify();
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
yield break;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
[UnityTest]
|
|
198
|
+
public IEnumerator PopColorIdempotent()
|
|
199
|
+
{
|
|
200
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
201
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
202
|
+
Color originalColor = spriteRenderer.color;
|
|
203
|
+
Color color = CreateColor();
|
|
204
|
+
metadata.PushColor(spriteRenderer, color);
|
|
205
|
+
|
|
206
|
+
void Verify()
|
|
207
|
+
{
|
|
208
|
+
metadata.PopColor(spriteRenderer);
|
|
209
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
210
|
+
Assert.AreEqual(originalColor, metadata.CurrentColor);
|
|
211
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
for (int i = 0; i < 100; ++i)
|
|
215
|
+
{
|
|
216
|
+
Verify();
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
yield break;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
[UnityTest]
|
|
223
|
+
public IEnumerator PopMaterialIdempotent()
|
|
224
|
+
{
|
|
225
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
226
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
227
|
+
Material material = CreateMaterial();
|
|
228
|
+
|
|
229
|
+
metadata.PushMaterial(spriteRenderer, material);
|
|
230
|
+
|
|
231
|
+
void Verify()
|
|
232
|
+
{
|
|
233
|
+
metadata.PopMaterial(spriteRenderer);
|
|
234
|
+
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
235
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
236
|
+
Assert.IsTrue(metadata.Materials.Contains(spriteRenderer.material));
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
for (int i = 0; i < 100; ++i)
|
|
240
|
+
{
|
|
241
|
+
Verify();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
yield break;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
[UnityTest]
|
|
248
|
+
public IEnumerator CannotSelfPushColor()
|
|
249
|
+
{
|
|
250
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
251
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
252
|
+
Color color = CreateColor();
|
|
253
|
+
Color originalColor = metadata.OriginalColor;
|
|
254
|
+
metadata.PushColor(metadata, color);
|
|
255
|
+
Assert.AreEqual(originalColor, metadata.CurrentColor);
|
|
256
|
+
Assert.AreEqual(originalColor, spriteRenderer.color);
|
|
257
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
258
|
+
yield break;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
[UnityTest]
|
|
262
|
+
public IEnumerator CannotSelfPopColor()
|
|
263
|
+
{
|
|
264
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
265
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
266
|
+
Color originalColor = metadata.OriginalColor;
|
|
267
|
+
metadata.PopColor(metadata);
|
|
268
|
+
Assert.AreEqual(originalColor, metadata.CurrentColor);
|
|
269
|
+
Assert.AreEqual(originalColor, spriteRenderer.color);
|
|
270
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
271
|
+
yield break;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
[UnityTest]
|
|
275
|
+
public IEnumerator CannotSelfPopMaterial()
|
|
276
|
+
{
|
|
277
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
278
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
279
|
+
Material originalMaterial = metadata.OriginalMaterial;
|
|
280
|
+
metadata.PopMaterial(metadata);
|
|
281
|
+
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
282
|
+
Assert.AreEqual(originalMaterial, spriteRenderer.material);
|
|
283
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
284
|
+
yield break;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
[UnityTest]
|
|
288
|
+
public IEnumerator CannotSelfPushMaterial()
|
|
289
|
+
{
|
|
290
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
291
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
292
|
+
Material material = CreateMaterial();
|
|
293
|
+
Material originalMaterial = metadata.OriginalMaterial;
|
|
294
|
+
metadata.PushMaterial(metadata, material);
|
|
295
|
+
Assert.AreEqual(originalMaterial, metadata.CurrentMaterial);
|
|
296
|
+
Assert.AreEqual(originalMaterial, spriteRenderer.material);
|
|
297
|
+
Assert.AreNotEqual(material, spriteRenderer.material);
|
|
298
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
299
|
+
yield break;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
[UnityTest]
|
|
303
|
+
public IEnumerator EnableDisableColor()
|
|
304
|
+
{
|
|
305
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
306
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
307
|
+
Color color = CreateColor();
|
|
308
|
+
metadata.PushColor(spriteRenderer, color);
|
|
309
|
+
Assert.AreEqual(color, metadata.CurrentColor);
|
|
310
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
311
|
+
Assert.AreEqual(2, metadata.Colors.Count());
|
|
312
|
+
|
|
313
|
+
metadata.enabled = false;
|
|
314
|
+
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
315
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
316
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
317
|
+
|
|
318
|
+
metadata.enabled = true;
|
|
319
|
+
Assert.AreEqual(color, metadata.CurrentColor);
|
|
320
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
321
|
+
Assert.AreEqual(2, metadata.Colors.Count());
|
|
322
|
+
yield break;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
[UnityTest]
|
|
326
|
+
public IEnumerator EnableDisableMaterial()
|
|
327
|
+
{
|
|
328
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
329
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
330
|
+
Material material = CreateMaterial();
|
|
331
|
+
metadata.PushMaterial(spriteRenderer, material);
|
|
332
|
+
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
333
|
+
Assert.AreEqual(2, metadata.Materials.Count());
|
|
334
|
+
|
|
335
|
+
metadata.enabled = false;
|
|
336
|
+
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
337
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
338
|
+
|
|
339
|
+
metadata.enabled = true;
|
|
340
|
+
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
341
|
+
Assert.AreEqual(2, metadata.Materials.Count());
|
|
342
|
+
yield break;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
[UnityTest]
|
|
346
|
+
public IEnumerator EnableDisableWithRemoveColor()
|
|
347
|
+
{
|
|
348
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
349
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
350
|
+
Color color = CreateColor();
|
|
351
|
+
metadata.PushColor(spriteRenderer, color);
|
|
352
|
+
Assert.AreEqual(color, metadata.CurrentColor);
|
|
353
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
354
|
+
Assert.AreEqual(2, metadata.Colors.Count());
|
|
355
|
+
|
|
356
|
+
metadata.enabled = false;
|
|
357
|
+
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
358
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
359
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
360
|
+
|
|
361
|
+
metadata.PopColor(spriteRenderer);
|
|
362
|
+
|
|
363
|
+
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
364
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
365
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
366
|
+
|
|
367
|
+
metadata.enabled = true;
|
|
368
|
+
Assert.AreEqual(metadata.OriginalColor, metadata.CurrentColor);
|
|
369
|
+
Assert.AreEqual(spriteRenderer.color, metadata.CurrentColor);
|
|
370
|
+
Assert.AreEqual(1, metadata.Colors.Count());
|
|
371
|
+
yield break;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
[UnityTest]
|
|
375
|
+
public IEnumerator EnableDisableWithRemoveMaterial()
|
|
376
|
+
{
|
|
377
|
+
SpriteRendererMetadata metadata = CreateMetadata();
|
|
378
|
+
SpriteRenderer spriteRenderer = metadata.GetComponent<SpriteRenderer>();
|
|
379
|
+
Material material = CreateMaterial();
|
|
380
|
+
metadata.PushMaterial(spriteRenderer, material);
|
|
381
|
+
Assert.AreEqual(spriteRenderer.material, metadata.CurrentMaterial);
|
|
382
|
+
Assert.AreEqual(2, metadata.Materials.Count());
|
|
383
|
+
|
|
384
|
+
metadata.enabled = false;
|
|
385
|
+
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
386
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
387
|
+
|
|
388
|
+
metadata.PopMaterial(spriteRenderer);
|
|
389
|
+
|
|
390
|
+
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
391
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
392
|
+
|
|
393
|
+
metadata.enabled = true;
|
|
394
|
+
Assert.AreEqual(metadata.OriginalMaterial, metadata.CurrentMaterial);
|
|
395
|
+
Assert.AreEqual(1, metadata.Materials.Count());
|
|
396
|
+
yield break;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|