示例#1
0
        public void InstanceIdToColorMappingTests_ThrowExceptionIdTooLarge()
        {
            Assert.Throws <IndexOutOfRangeException>(() => InstanceIdToColorMapping.GetColorFromInstanceId(uint.MaxValue));
            var c = new Color32(255, 255, 255, 0);

            Assert.Throws <IndexOutOfRangeException>(() => InstanceIdToColorMapping.GetInstanceIdFromColor(c));
        }
示例#2
0
        public void InstanceIdToColorMappingTests_ToAndFromPackedColor(byte r, byte g, byte b, byte a, uint expected)
        {
            var color  = new Color32(r, g, b, a);
            var packed = InstanceIdToColorMapping.GetPackedColorFromColor(color);

            Assert.AreEqual(packed, expected);
            var c = InstanceIdToColorMapping.GetColorFromPackedColor(packed);

            Assert.AreEqual(r, c.r);
            Assert.AreEqual(g, c.g);
            Assert.AreEqual(b, c.b);
            Assert.AreEqual(a, c.a);
        }
示例#3
0
        public void InstanceIdToColorMappingTests_TestHslColors()
        {
            for (var i = 1u; i <= 64u; i++)
            {
                Assert.IsTrue(InstanceIdToColorMapping.TryGetColorFromInstanceId(i, out var color));
                Assert.IsTrue(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id));
                Assert.AreEqual(i, id);

                color = InstanceIdToColorMapping.GetColorFromInstanceId(i);
                id    = InstanceIdToColorMapping.GetInstanceIdFromColor(color);
                Assert.AreEqual(i, id);
            }
        }
        public void InstanceIdToColorMappingTests_GetCorrectValuesFor255()
        {
            var expectedColor = new Color32(19, 210, 0, 255);

            Assert.IsTrue(InstanceIdToColorMapping.TryGetColorFromInstanceId(255u, out var color));
            Assert.AreEqual(expectedColor, color);
            Assert.IsTrue(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id2));
            Assert.AreEqual(255u, id2);

            color = InstanceIdToColorMapping.GetColorFromInstanceId(255u);
            Assert.AreEqual(expectedColor, color);
            id2 = InstanceIdToColorMapping.GetInstanceIdFromColor(color);
            Assert.AreEqual(255u, id2);
        }
        public void InstanceIdToColorMappingTests_TestColorForId(uint id, byte r, byte g, byte b, byte a)
        {
            Assert.IsTrue(InstanceIdToColorMapping.TryGetColorFromInstanceId(id, out var color));
            var expected = new Color32(r, g, b, a);

            Assert.AreEqual(expected, color);

            Assert.IsTrue(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id2));
            Assert.AreEqual(id, id2);

            color = InstanceIdToColorMapping.GetColorFromInstanceId(id);
            Assert.AreEqual(expected, color);

            id2 = InstanceIdToColorMapping.GetInstanceIdFromColor(color);
            Assert.AreEqual(id, id2);
        }
示例#6
0
        public void InstanceIdToColorMappingTests_GetBlackForId(uint id)
        {
            Assert.IsFalse(InstanceIdToColorMapping.TryGetColorFromInstanceId(id, out var color));
            Assert.AreEqual(color.r, 0);
            Assert.AreEqual(color.g, 0);
            Assert.AreEqual(color.b, 0);
            Assert.AreEqual(color.a, 255);
            Assert.IsFalse(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id2));
            Assert.AreEqual(0, id2);

            color = InstanceIdToColorMapping.GetColorFromInstanceId(id);
            Assert.AreEqual(color.r, 0);
            Assert.AreEqual(color.g, 0);
            Assert.AreEqual(color.b, 0);
            Assert.AreEqual(color.a, 255);
            id2 = InstanceIdToColorMapping.GetInstanceIdFromColor(color);
            Assert.AreEqual(0, id2);
        }
示例#7
0
        public void InstanceIdToColorMappingTests_TestColorForId(uint id, byte r, byte g, byte b, byte a)
        {
            Assert.IsTrue(InstanceIdToColorMapping.TryGetColorFromInstanceId(id, out var color));
            Assert.AreEqual(color.r, r);
            Assert.AreEqual(color.g, g);
            Assert.AreEqual(color.b, b);
            Assert.AreEqual(color.a, a);

            Assert.IsTrue(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id2));
            Assert.AreEqual(id, id2);

            color = InstanceIdToColorMapping.GetColorFromInstanceId(id);
            Assert.AreEqual(color.r, r);
            Assert.AreEqual(color.g, g);
            Assert.AreEqual(color.b, b);
            Assert.AreEqual(color.a, a);

            id2 = InstanceIdToColorMapping.GetInstanceIdFromColor(color);
            Assert.AreEqual(id, id2);
        }
示例#8
0
        public void InstanceIdToColorMappingTests_GetCorrectValuesFor255()
        {
            var expectedColor = new Color(0, 0, 191, 254);

            Assert.IsTrue(InstanceIdToColorMapping.TryGetColorFromInstanceId(255u, out var color));
            Assert.AreEqual(color.r, expectedColor.r);
            Assert.AreEqual(color.g, expectedColor.g);
            Assert.AreEqual(color.b, expectedColor.b);
            Assert.AreEqual(color.a, expectedColor.a);
            Assert.IsTrue(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id2));
            Assert.AreEqual(255u, id2);

            color = InstanceIdToColorMapping.GetColorFromInstanceId(255u);
            Assert.AreEqual(color.r, expectedColor.r);
            Assert.AreEqual(color.g, expectedColor.g);
            Assert.AreEqual(color.b, expectedColor.b);
            Assert.AreEqual(color.a, expectedColor.a);
            id2 = InstanceIdToColorMapping.GetInstanceIdFromColor(color);
            Assert.AreEqual(255u, id2);
        }
示例#9
0
        public void InstanceIdToColorMappingTests_TryGetReturnsFalseIdNotMapped()
        {
            var c = new Color32(28, 92, 14, 255);

            Assert.IsFalse(InstanceIdToColorMapping.TryGetInstanceIdFromColor(c, out var id));
        }
示例#10
0
        public void InstanceIdToColorMappingTests_ThrowExceptionIdNotMapped()
        {
            var c = new Color32(28, 92, 14, 255);

            Assert.Throws <InvalidOperationException>(() => InstanceIdToColorMapping.GetInstanceIdFromColor(c));
        }
示例#11
0
 public void InstanceIdToColorMappingTests_TryGetReturnsFalseIdTooLarge()
 {
     Assert.IsFalse(InstanceIdToColorMapping.TryGetColorFromInstanceId(uint.MaxValue, out var color));
     color = new Color32(255, 255, 255, 0);
     Assert.IsFalse(InstanceIdToColorMapping.TryGetInstanceIdFromColor(color, out var id));
 }
        public static IEnumerable ProducesCorrectBoundingBoxesTestCases()
        {
            InstanceIdToColorMapping.TryGetColorFromInstanceId(1, out var color1);
            InstanceIdToColorMapping.TryGetColorFromInstanceId(2, out var color2);
            var empty = Color.black;

            yield return(new ProducesCorrectObjectInfoData(
                             new Color32[]
            {
                color1, color1,
                color1, color1
            }, new[]
            {
                new RenderedObjectInfo()
                {
                    boundingBox = new Rect(0, 0, 2, 2),
                    instanceId = 1,
                    pixelCount = 4,
                    instanceColor = color1
                }
            },
                             2,
                             BoundingBoxOrigin.BottomLeft,
                             "SimpleBox"));

            yield return(new ProducesCorrectObjectInfoData(
                             new Color32[]
            {
                color1, empty, color2,
                color1, empty, empty
            }, new[]
            {
                new RenderedObjectInfo()
                {
                    boundingBox = new Rect(2, 0, 1, 1),
                    instanceId = 2,
                    pixelCount = 1,
                    instanceColor = color2
                },
                new RenderedObjectInfo()
                {
                    boundingBox = new Rect(0, 0, 1, 2),
                    instanceId = 1,
                    pixelCount = 2,
                    instanceColor = color1
                }
            },
                             3,
                             BoundingBoxOrigin.BottomLeft,
                             "WithGaps"));

            yield return(new ProducesCorrectObjectInfoData(
                             new Color32[]
            {
                color1, color2, color1,
                color1, color2, color1
            }, new[]
            {
                new RenderedObjectInfo()
                {
                    boundingBox = new Rect(1, 0, 1, 2),
                    instanceId = 2,
                    pixelCount = 2,
                    instanceColor = color2
                },
                new RenderedObjectInfo()
                {
                    boundingBox = new Rect(0, 0, 3, 2),
                    instanceId = 1,
                    pixelCount = 4,
                    instanceColor = color1
                }
            },
                             3,
                             BoundingBoxOrigin.BottomLeft,
                             "Interleaved"));

            yield return(new ProducesCorrectObjectInfoData(
                             new Color32[]
            {
                empty, empty,
                empty, empty,
                empty, color1
            }, new[]
            {
                new RenderedObjectInfo()
                {
                    boundingBox = new Rect(1, 0, 1, 1),
                    instanceId = 1,
                    pixelCount = 1,
                    instanceColor = color1
                },
            },
                             2,
                             BoundingBoxOrigin.TopLeft,
                             "TopLeft"));
        }