public void FromFileTest()
        {
            ReportStart();
            foreach (string file in _paletteFiles)
            {
                _actual = Palette.FromFile(file);

                _expected = new Palette();
                byte[] bytes = File.ReadAllBytes(file);
                for (int i = 0; i < bytes.Length; i += 3)
                {
                    Color c = Color.FromArgb(bytes[i], bytes[i + 1], bytes[i + 2]);
                    _expected.Add(c);
                }

                Assert.AreEqual(_expected.Count, _actual.Count, file);

                for (int i = 0; i < _expected.Count; i++)
                {
                    ColourAssert.AreEqual(_expected[i], _actual[i],
                                          file + " Colour number " + i);
                }
            }
            ReportEnd();
        }
        public void AddTest()
        {
            ReportStart();
            _actual = new Palette();

            // Add a first colour and check it's the only one in the palette
            _actual.Add(Color.AliceBlue);
            Assert.AreEqual(1, _actual.Count);
            ColourAssert.AreEqual(Color.AliceBlue, _actual[0]);

            // Add a second colour and check both are in the palette
            _actual.Add(Color.AntiqueWhite);
            Assert.AreEqual(2, _actual.Count);
            ColourAssert.AreEqual(Color.AliceBlue, _actual[0]);
            ColourAssert.AreEqual(Color.AntiqueWhite, _actual[1]);

            // Add a colour that's already in the palette, and check nothing has changed
            _actual.Add(Color.AliceBlue);
            Assert.AreEqual(2, _actual.Count);
            ColourAssert.AreEqual(Color.AliceBlue, _actual[0]);
            ColourAssert.AreEqual(Color.AntiqueWhite, _actual[1]);

            // Add a third colour and check that all 3 are in the palete
            _actual.Add(Color.Aqua);
            Assert.AreEqual(3, _actual.Count);
            ColourAssert.AreEqual(Color.AliceBlue, _actual[0]);
            ColourAssert.AreEqual(Color.AntiqueWhite, _actual[1]);
            ColourAssert.AreEqual(Color.Aqua, _actual[2]);
            ReportEnd();
        }
        public void GetColoursTest()
        {
            ReportStart();
            _bitmap = RandomBitmap.Create(new Size(100, 100), 20,
                                          PixelFormat.Format32bppArgb);

            Collection <Color> expectedColours = new Collection <Color>();

            for (int y = 0; y < _bitmap.Height; y++)
            {
                for (int x = 0; x < _bitmap.Width; x++)
                {
                    expectedColours.Add(_bitmap.GetPixel(x, y));
                }
            }

            Color[] actualColours = ImageTools.GetColours(_bitmap);

            Assert.AreEqual(expectedColours.Count, actualColours.Length);

            for (int i = 0; i < expectedColours.Count; i++)
            {
                ColourAssert.AreEqual(expectedColours[i],
                                      actualColours[i],
                                      "Index " + i);
            }
            ReportEnd();
        }
        public void ValueTest()
        {
            ReportStart();
            Palette expected = _palette;
            Palette actual   = _pc.Value;

            Assert.AreEqual(expected.Count, actual.Count);
            for (int i = 0; i < expected.Count; i++)
            {
                ColourAssert.AreEqual(expected[i], actual[i], "Colour " + i);
            }
            ReportEnd();
        }
Exemple #5
0
        public void ConvertToInstanceDescriptor()
        {
            // Call the ConvertTo method to convert the Palette instance to an
            // ImageDescriptor
            InstanceDescriptor actual
                = (InstanceDescriptor)_converter.ConvertTo(_palette,
                                                           typeof(InstanceDescriptor));

            // This returns an InstanceDescriptor instance with an Arguments
            // property, which is an ICollection, the first element of which
            // should be the original Palette instance
            object[] actualArguments = (object[])actual.Arguments;
            Palette  actualPalette   = (Palette)actualArguments[0];

            // Compare the returned Palette instance with the original one
            Assert.AreEqual(_palette.Count, actualPalette.Count);
            for (int i = 0; i < _palette.Count; i++)
            {
                ColourAssert.AreEqual(_palette[i], actualPalette[i], "Colour " + i);
            }
        }
        public void FromStreamTooLongTest()
        {
            ReportStart();
            MemoryStream s = new MemoryStream();

            for (int i = 0; i < 769; i++)
            {
                int b;
                Math.DivRem(i, 256, out b);
                s.WriteByte((byte)b);
            }
            s.Seek(0, SeekOrigin.Begin);

            _actual = Palette.FromStream(s);
            Assert.AreEqual(256, _actual.Count);

            s.Seek(0, SeekOrigin.Begin);
            for (int i = 0; i < 256; i++)
            {
                Color c = Color.FromArgb(s.ReadByte(), s.ReadByte(), s.ReadByte());
                ColourAssert.AreEqual(c, _actual[i], "Colour index " + i);
            }
            ReportEnd();
        }