public void LiveFrameReturnsCorrectReportBytesForPage5()
        {
            var frame = new FullColorLiveFrame();
            frame.Leds.LedRawBits = (ushort)0xaa55;

            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });
            frame.Colors.Add(new Display.RgbColor { });

            frame.Colors.Add(new Display.RgbColor { Red = 0xff, Green = 0xfe, Blue = 0xfd });
            var reportBytes = frame.GetReportDataForPage(5);

            Assert.AreEqual(0x00, reportBytes[0]);
            Assert.AreEqual(0xff, reportBytes[1]);
            Assert.AreEqual(0xfe, reportBytes[2]);
            Assert.AreEqual(0xfd, reportBytes[3]);
            Assert.AreEqual(0x55, reportBytes[4]);
            Assert.AreEqual(0xaa, reportBytes[5]);
            Assert.AreEqual(0x00, reportBytes[6]);
            Assert.AreEqual(0x00, reportBytes[7]);
            Assert.AreEqual(0x52, reportBytes[8]);
        }
        public void LiveFrameReturnsCorrectReportBytesForPage0()
        {
            var frame = new FullColorLiveFrame();
            frame.Colors.Add(new Display.RgbColor { Red = 0xff, Green = 0xfe, Blue = 0xfd });
            frame.Colors.Add(new Display.RgbColor { Red = 0x0f, Green = 0x0e, Blue = 0x0d });
            var reportBytes = frame.GetReportDataForPage(0);

            Assert.AreEqual(0x00, reportBytes[0]);
            Assert.AreEqual(0xff, reportBytes[1]);
            Assert.AreEqual(0xfe, reportBytes[2]);
            Assert.AreEqual(0xfd, reportBytes[3]);
            Assert.AreEqual(0x0f, reportBytes[4]);
            Assert.AreEqual(0x0e, reportBytes[5]);
            Assert.AreEqual(0x0d, reportBytes[6]);
            Assert.AreEqual(0x00, reportBytes[7]);
            Assert.AreEqual(0x01, reportBytes[8]);
        }
        private void FullColorSpectrumTest_Click(object sender, RoutedEventArgs e)
        {
            if (_fullColorSpectrumFrame == null)
            {
                _fullColorSpectrumFrame = new FullColorLiveFrame {Leds = {LedRawBits = 0xffff}};
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0xff, Green = 0x00, Blue = 0x00 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0xaa, Green = 0x10, Blue = 0x00 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x88, Green = 0x44, Blue = 0x00 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x66, Green = 0x88, Blue = 0x00 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x00, Green = 0xff, Blue = 0x00 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x00, Green = 0xff, Blue = 0x66 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x00, Green = 0xdd, Blue = 0x99 });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x00, Green = 0x99, Blue = 0xff });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x00, Green = 0x00, Blue = 0xff });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x33, Green = 0x00, Blue = 0xff });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x66, Green = 0x00, Blue = 0xdd });
                _fullColorSpectrumFrame.Colors.Add(new Display.RgbColor { Red = 0x99, Green = 0x00, Blue = 0x99 });
            }
            else
            {
                _fullColorSpectrumFrame.RotateColorsClockwise();
            }

            _usbDriver.RenderFrame(_fullColorSpectrumFrame);
        }