public void Get_DecimalsString_Zeros()
        {
            decimal test = 001230.00045678900m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual("00045678900", dn.GetDecimalsString());
        }
        public void Get_Whole()
        {
            decimal test = 001230.012345601m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual((ulong)1230, dn.GetWhole());
        }
        public void ToScientificNotationString_NonRepeating()
        {
            decimal test = 001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual(test.ToString(), dn.ToLineNotationString());
        }
        public void ToScientificNotationString_Repeating()
        {
            decimal test = 001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 7);

            Assert.AreEqual("       _______" + Environment.NewLine + test, dn.ToLineNotationString());
        }
        public void ToScientificNotationString_RepeatingZero()
        {
            decimal test = 1.010m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 2);

            Assert.AreEqual(Environment.NewLine + "   __" + Environment.NewLine + test, Environment.NewLine + dn.ToLineNotationString());
        }
        public void Set_Count_OK()
        {
            decimal test = 001230.012121212m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 4);

            Assert.AreEqual(4, (int)dn.RepeatingDecimalsCount);
        }
        public void Get_Number()
        {
            decimal test = 001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual(test, dn.Number);
        }
        public void IsNotRepeatingDecimal()
        {
            decimal test = 001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.IsFalse(dn.IsRepeatingDecimal());
        }
        public void Set_Decimals()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(7890.01487m);

            dn.SetDecimals(0.0012481632m);
            Assert.AreEqual(0.0012481632m, dn.GetDecimals());
        }
        public void ToString_Repeating20()
        {
            decimal test = 001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 7);

            Assert.AreEqual("1230.000456789045...", dn.ToString(20));
        }
        public void ToString_Repeating_Negative()
        {
            decimal test = -001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 7);

            Assert.AreEqual("-1230.000456789045678904567...", dn.ToString());
        }
        public void Get_RepeatingPart_Zeros()
        {
            decimal test = 001230.000456789000m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 8);

            Assert.AreEqual("56789000", dn.GetRepeatingPartString());
        }
        public void Get_RepeatingPart_None()
        {
            decimal test = 001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual("", dn.GetRepeatingPartString());
        }
        public void IsNegative()
        {
            decimal test = -001230.000456789m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.IsTrue(dn.IsNegative());
        }
        public void Set_Number()
        {
            decimal test = 456.000789000m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual(test, dn.Number);
        }
        public void IsWhole()
        {
            decimal test = 001230.000m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.IsTrue(dn.IsWhole());
        }
        public void Set_Count_TailingZeros()
        {
            decimal test = 001230.0000456m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 7);

            Assert.AreEqual(7, (int)dn.RepeatingDecimalsCount);
        }
        public void ToString_NonRepeating()
        {
            decimal test = 001230.0004567890m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test);

            Assert.AreEqual(test.ToString(), dn.ToString());
        }
        public void ToString_Repeating_WithZero()
        {
            decimal test = 001230.000456789000m;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(test, 9);

            Assert.AreEqual("1230.0004567890004567890004...", dn.ToString());
        }
        public void Set_DecimalString_Empty()
        {
            string test = "";
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(001230.000456789m);

            dn.SetDecimalsString(test);
            Assert.AreEqual(test, dn.GetDecimalsString());
        }
        public void Set_Whole()
        {
            ulong test = 1230;
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(654312.4897m);

            dn.SetWhole(test);
            Assert.AreEqual(test, dn.GetWhole());
        }
        private void Set_DecimalString_Bad(string test)
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(001230.000456789m);

            try
            {
                dn.SetDecimalsString(test);
            }
            catch (Exception) { return; }
            Assert.Fail(dn.GetDecimalsString());
        }
        public void Set_Decimals_Bad()
        {
            RepeatingDecimalNumber dn;
            decimal test = 56.7089m;

            try
            {
                dn = new RepeatingDecimalNumber(123);
                dn.SetDecimals(test);
            }
            catch (Exception) { return; }
            Assert.Fail(dn.GetDecimalsString());
        }
Пример #24
0
 private void CalculateRepeatingDecimalNumber()
 {
     if (DecimalNumberTB.Text.Length > 0)
     {
         RepeatingDecimalNumber repeatingDecimalNumber = new RepeatingDecimalNumber(decimal.Parse(DecimalNumberTB.Text));
         CountNUD.Maximum = repeatingDecimalNumber.GetDecimalsLength();
         repeatingDecimalNumber.RepeatingDecimalsCount = (uint)CountNUD.Value;
         string outText;
         if (outFractionLabelDisplayMode == 0)
         {
             outText = (repeatingDecimalNumber.IsRepeatingDecimal() ? "" : Environment.NewLine) + repeatingDecimalNumber.ToLineNotationString();
         }
         else
         {
             outText = Environment.NewLine + repeatingDecimalNumber.ToString(36);
         }
         Output(repeatingDecimalNumber.GetAsFraction(), outText);
     }
     else
     {
         ClearOutputs();
     }
 }
        public void GetAsFraction_Huge()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(0.3529411764705882m, 16);

            Assert.AreEqual(new Fraction(6, 17), dn.GetAsFraction());
        }
        public void GetAsFraction2_Negative()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(-123.456m, 3);

            Assert.AreEqual(new Fraction(-41111, 333), dn.GetAsFraction());
        }
        public void Get_Decimals()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(7890.00798m);

            Assert.AreEqual(0.00798m, dn.GetDecimals());
        }
        public void Set_Count_Empty()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(456.7089m);

            Assert.AreEqual(0, (int)dn.RepeatingDecimalsCount);
        }
        public void GetAsFraction3_Negative()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(-123.045600m, 5);

            Assert.AreEqual(new Fraction(-4101479, 33333), dn.GetAsFraction());
        }
        public void Get_Count_TailingZeros()
        {
            RepeatingDecimalNumber dn = new RepeatingDecimalNumber(4560.1230004900m, 4);

            Assert.AreEqual(4, (int)dn.RepeatingDecimalsCount);
        }