Exemplo n.º 1
0
        private void Run_Add_Int_Float(Random r)
        {
            var a      = r.Next(-10000, 10000);
            var b      = (float)(r.NextDouble() * r.Next(-10000, 10000));
            var result = a + b;

            LoopBase(() => result = a + b);

            var fa      = Fixed.FromInt(a);
            var fb      = Fixed.FromFloat(b);
            var fresult = fa + fb;

            LoopFixed(() => fresult = fa + fb);

            if (!Fixed.Approximately(fresult, Fixed.FromFloat(result)))
            {
                throw new InvalidOperationException();
            }
        }
Exemplo n.º 2
0
        private void Run_Divide_Int_Int(Random r)
        {
            var a = r.Next(-1000, 1000);
            var b = r.Next(-1000, 1000);

            if (b == 0)
            {
                b = 1;
            }
            var result = (float)a / b;

            LoopBase(() => result = (float)a / b);

            var fa      = Fixed.FromInt(a);
            var fb      = Fixed.FromInt(b);
            var fresult = fa / fb;

            LoopFixed(() => fresult = fa / fb);

            if (!Fixed.Approximately(fresult, Fixed.FromFloat(result)))
            {
                throw new InvalidOperationException();
            }
        }
Exemplo n.º 3
0
 static void AssertApproximately(Fixed expected, Fixed actual)
 {
     Assert.True(Fixed.Approximately(expected, actual));
 }