代码之家  ›  专栏  ›  技术社区  ›  ORHAN TOPDAĞ

c#xunit颜色测试不起作用

  •  0
  • ORHAN TOPDAĞ  · 技术社区  · 7 年前
     [Theory]
        [InlineData(0.75)]
        public void ColorBindTest2(double max)
        {
            DefaultColorUnit.MediumColorStatic = Colors.Yellow;
            DefaultColorUnit.HighColorStatic = Colors.Red;
            var excepted = Colors.Orange;
    
            Color actual = _asd.renkata(max).Item2;
    
            Assert.Equal(excepted.R, actual.R);
            Assert.Equal(excepted.G, actual.G);
            Assert.Equal(excepted.B, actual.B);
        }
    

    public Tuple<Brush, Color> renkata(double val)
    {
    
        byte r1 = DefaultColorUnit.LowColorStatic.R;
        byte g1 = DefaultColorUnit.LowColorStatic.G;
        byte b1 = DefaultColorUnit.LowColorStatic.B;
    
    
        byte r2 = DefaultColorUnit.MediumColorStatic.R;
        byte g2 = DefaultColorUnit.MediumColorStatic.G;
        byte b2 = DefaultColorUnit.MediumColorStatic.B;
    
    
        byte r3 = DefaultColorUnit.HighColorStatic.R;
        byte g3 = DefaultColorUnit.HighColorStatic.G;
        byte b3 = DefaultColorUnit.HighColorStatic.B;
        if (val <= 1 && val > 0.5)
        {
            val = 2 * (Math.Abs(0.5 - val));
    
            Color p1 = new Color();
    
            byte r = (byte)((r3 * val) + r2 * (1 - val));
            byte g = (byte)((g3 * val) + g2 * (1 - val));
            byte b = (byte)((b3 * val) + b2 * (1 - val));
            p1 = Color.FromRgb(r, g, b);
            Brush sold = new SolidColorBrush(Color.FromRgb(r, g, b));
    
            return new Tuple<Brush, Color>(sold, p1);
    
    
        }
        else if (val == 0.5)
        {
    
            Brush sold = new SolidColorBrush(Color.FromRgb(r2, g2, b2));
            Color p1 = (Color.FromRgb(r2, g2, b2));
    
            return new Tuple<Brush, Color>(sold, p1);
    
        }
        else if (val < 0.5 && val >= 0)
        {
            val = 2 * (Math.Abs(0.5 - val));
            val = 1 - val;
            Color p1 = new Color();
    
            byte r = (byte)((r2 * val) + r1 * (1 - val));
            byte g = (byte)((g2 * val) + g1 * (1 - val));
            byte b = (byte)((b2 * val) + b1 * (1 - val));
            p1 = Color.FromRgb(r, g, b);
    
            SolidColorBrush sold = new SolidColorBrush(Color.FromRgb(r, g, b));
    
    
            return new Tuple<Brush, Color>(sold, p1);
        }
        else if (val > 1)
        {
            SolidColorBrush sold = new SolidColorBrush(Colors.Black);
            Color p1 = Colors.Black;
            return new Tuple<Brush, Color>(sold, p1);
        }
        else if (val < 0)
        {
            SolidColorBrush sold = new SolidColorBrush(Colors.White);
            Color p1 = Colors.White;
            return new Tuple<Brush, Color>(sold, p1);
        }
        else
        {
            SolidColorBrush sold = new SolidColorBrush(Colors.Blue);
            Color p1 = Colors.Blue;
            return new Tuple<Brush, Color>(sold, p1);
        }
    }
    

    我想从三色渐变测试我的颜色计算器。 visual studio中的color.orange是255 165 0,但我的orange是255 127 0我的代码运行起来很好。但是测试它不是真正的橙色,我的代码计算错误的颜色rgb或颜色。橙色不是真正的橙色。

    0 回复  |  直到 7 年前