Example #1
0
        public void BigRational_Round_DoesNothingIfNoFractionalPart()
        {
            BigRational bigRational1 = BigRational.Create(100.0m);

            Assert.Equal(bigRational1, bigRational1.Round(0));
            Assert.Equal(bigRational1, bigRational1.Round(1));
            Assert.Equal(bigRational1, bigRational1.Round(2));

            BigRational bigRational2 = BigRational.Create(1.0m);

            Assert.Equal(bigRational2, bigRational2.Round(0));
            Assert.Equal(bigRational2, bigRational2.Round(1));
            Assert.Equal(bigRational2, bigRational2.Round(2));

            BigRational bigRational3 = BigRational.Create(0m);

            Assert.Equal(bigRational3, bigRational3.Round(0));
            Assert.Equal(bigRational3, bigRational3.Round(1));
            Assert.Equal(bigRational3, bigRational3.Round(2));

            BigRational bigRational4 = BigRational.Create(-1.0m);

            Assert.Equal(bigRational4, bigRational4.Round(0));
            Assert.Equal(bigRational4, bigRational4.Round(1));
            Assert.Equal(bigRational4, bigRational4.Round(2));

            BigRational bigRational5 = BigRational.Create(-100.0m);

            Assert.Equal(bigRational5, bigRational5.Round(0));
            Assert.Equal(bigRational5, bigRational5.Round(1));
            Assert.Equal(bigRational5, bigRational5.Round(2));
        }
Example #2
0
        public void BigRational_Round_DoesItToHighest()
        {
            BigRational bigRational1 = BigRational.Create(100.987m);

            Assert.Equal(BigRational.Create(101m), bigRational1.Round(0));
            Assert.Equal(BigRational.Create(101m), bigRational1.Round(1));
            Assert.Equal(BigRational.Create(100.99m), bigRational1.Round(2));
            Assert.Equal(BigRational.Create(100.987m), bigRational1.Round(3));
            Assert.Equal(BigRational.Create(100.987m), bigRational1.Round(4));

            BigRational bigRational2 = BigRational.Create(-100.987m);

            Assert.Equal(BigRational.Create(-101m), bigRational2.Round(0));
            Assert.Equal(BigRational.Create(-101m), bigRational2.Round(1));
            Assert.Equal(BigRational.Create(-100.99m), bigRational2.Round(2));
            Assert.Equal(BigRational.Create(-100.987m), bigRational2.Round(3));
            Assert.Equal(BigRational.Create(-100.987m), bigRational2.Round(4));
        }
 public void RoundWithRule(MidpointRounding decimalMode, RationalRounding rationalMode)
 {
     for (var v = -2.5M; v <= 2.5M; v += 0.0001M)
     {
         Compare(
             Math.Round(v, decimalMode),
             BigRational.Round(v, rationalMode));
     }
 }
Example #4
0
        public void BigRational_Round_DoesItToLowest()
        {
            BigRational bigRational1 = BigRational.Create(100.123m);

            Assert.Equal(BigRational.Create(100m), bigRational1.Round(0));
            Assert.Equal(BigRational.Create(100.1m), bigRational1.Round(1));
            Assert.Equal(BigRational.Create(100.12m), bigRational1.Round(2));
            Assert.Equal(BigRational.Create(100.123m), bigRational1.Round(3));
            Assert.Equal(BigRational.Create(100.123m), bigRational1.Round(4));

            BigRational bigRational2 = BigRational.Create(-100.123m);

            Assert.Equal(BigRational.Create(-100m), bigRational2.Round(0));
            Assert.Equal(BigRational.Create(-100.1m), bigRational2.Round(1));
            Assert.Equal(BigRational.Create(-100.12m), bigRational2.Round(2));
            Assert.Equal(BigRational.Create(-100.123m), bigRational2.Round(3));
            Assert.Equal(BigRational.Create(-100.123m), bigRational2.Round(4));
        }
 public void Round()
 {
     for (var v = -2.5M; v <= 2.5M; v += 0.0001M)
     {
         Compare(
             Math.Round(v),
             BigRational.Round(v));
     }
 }
 public void RoundWithDecimals()
 {
     for (var v = -2.5M; v <= 2.5M; v += 0.0001M)
     {
         for (int d = 0; d < 4; d++)
         {
             Compare(
                 Math.Round(v, d),
                 BigRational.Round(v, d));
         }
     }
 }
 public void RoundWithRuleWithDecimals2(MidpointRounding decimalMode, RationalRounding rationalMode)
 {
     for (int d = -4; d <= 4; d++)
     {
         var scale = TenPow(d);
         for (var v = -2.5M; v <= 2.5M; v += 0.0001M)
         {
             Compare(
                 Math.Round(v * scale, decimalMode) / scale,
                 BigRational.Round(v, d, rationalMode));
         }
     }
 }
 public void RoundWithDecimals2()
 {
     for (int d = -4; d <= 4; d++)
     {
         var scale = TenPow(d);
         for (var v = -2.5M; v <= 2.5M; v += 0.0001M)
         {
             Compare(
                 Math.Round(v * scale) / scale,
                 BigRational.Round(v, d));
         }
     }
 }
Example #9
0
        public void BigRational_Round_DoesNothingIfPrecisionIsHigher()
        {
            BigRational bigRational1 = BigRational.Create(100.1m);

            Assert.Equal(bigRational1, bigRational1.Round(1));
            Assert.Equal(bigRational1, bigRational1.Round(2));
            Assert.Equal(bigRational1, bigRational1.Round(3));

            BigRational bigRational2 = BigRational.Create(100.12m);

            Assert.Equal(bigRational2, bigRational2.Round(2));
            Assert.Equal(bigRational2, bigRational2.Round(3));

            BigRational bigRational3 = BigRational.Create(-100.12m);

            Assert.Equal(bigRational3, bigRational3.Round(2));
            Assert.Equal(bigRational3, bigRational3.Round(3));

            BigRational bigRational4 = BigRational.Create(-100.1m);

            Assert.Equal(bigRational4, bigRational4.Round(1));
            Assert.Equal(bigRational4, bigRational4.Round(2));
            Assert.Equal(bigRational4, bigRational4.Round(3));
        }
Example #10
0
        public static void PremiumSetup(int divisor, string preIdent, string postIdent, bool enabled)
        {
            if (hasBeenSetup)
            {
                return;
            }
            hasBeenSetup = true;
            int            i        = 0;
            List <Upgrade> upgrades = PremiumUpgrades.AllPremiumUps;

            //premiumList.transform.hierarchyCapacity = (upgrades.Count + 1) * 5 + 1375;
            foreach (Upgrade item in upgrades)
            {
                GameObject go = Main.Instantiate(PrefabManager.instance.SKILL_LISTITEM, premiumList) as GameObject;
                item.upgradListGui         = go;
                go.transform.localPosition = new Vector3(5, i * -110 - 5, 5);
                ((RectTransform)go.transform).anchorMax = new Vector2(1, 1);
                ((RectTransform)go.transform).offsetMax = new Vector2(-3, ((RectTransform)go.transform).offsetMax.y);
                go.transform.Find("Name").GetComponent <Text>().text        = item.displayName;
                go.transform.Find("Description").GetComponent <Text>().text = Localization.translateToLocal("premium." + item.displayName + ".desc");
                go.transform.Find("Ranks").GetComponent <Text>().text       = "";
                go.transform.Find("Label").GetComponent <Text>().text       = (item.getIsPurchased() ? "Purchased!" : "");
                Transform t1 = go.transform.Find("BuyOne");
                if (enabled)
                {
                    t1.GetComponent <Button>().onClick.AddListener(delegate {
                        doBuyPremium(item);
                    });
                }
                t1.gameObject.SetActive(!item.getIsPurchased());
                if (divisor == 100)
                {
                    string cstr = Main.AsCurrency(item.cost);
                    t1.GetChild(0).GetComponent <Text>().text = preIdent + (item.cost < 100 ? "0" : cstr.Substring(0, cstr.Length - 2)) + "." + cstr.Substring(cstr.Length - 2) + postIdent;
                }
                else
                {
                    string cstr = Main.AsCurrency(BigRational.Round(new BigRational(item.cost) / divisor));
                    t1.GetChild(0).GetComponent <Text>().text = preIdent + cstr + postIdent;
                }
                i++;
            }
            showPremiumError(!enabled);
            purchasingAvailable = enabled;
            ((RectTransform)premiumList).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (i * 100 + 10));
            premiumList.localPosition = Vector3.zero;
        }
Example #11
0
        public void BigRational_Round_DoesNotAllowNegativeDecimals()
        {
            BigRational bigRational = BigRational.Create(1.0m);

            Assert.Throws <ArgumentOutOfRangeException>(() => bigRational.Round(out bigRational, -1));
        }
Example #12
0
        public void BigRational_Round_DoesItToEven()
        {
            BigRational bigRational1 = BigRational.Create(100.152535455565758595m);

            Assert.Equal(BigRational.Create(100m), bigRational1.Round(0));
            Assert.Equal(BigRational.Create(100.2m), bigRational1.Round(1));
            Assert.Equal(BigRational.Create(100.15m), bigRational1.Round(2));
            Assert.Equal(BigRational.Create(100.153m), bigRational1.Round(3));
            Assert.Equal(BigRational.Create(100.1525m), bigRational1.Round(4));
            Assert.Equal(BigRational.Create(100.15254m), bigRational1.Round(5));
            Assert.Equal(BigRational.Create(100.152535m), bigRational1.Round(6));
            Assert.Equal(BigRational.Create(100.1525355m), bigRational1.Round(7));
            Assert.Equal(BigRational.Create(100.15253546m), bigRational1.Round(8));
            Assert.Equal(BigRational.Create(100.152535456m), bigRational1.Round(9));
            Assert.Equal(BigRational.Create(100.1525354556m), bigRational1.Round(10));
            Assert.Equal(BigRational.Create(100.15253545557m), bigRational1.Round(11));
            Assert.Equal(BigRational.Create(100.152535455566m), bigRational1.Round(12));
            Assert.Equal(BigRational.Create(100.1525354555658m), bigRational1.Round(13));
            Assert.Equal(BigRational.Create(100.15253545556576m), bigRational1.Round(14));
            Assert.Equal(BigRational.Create(100.152535455565759m), bigRational1.Round(15));
            Assert.Equal(BigRational.Create(100.1525354555657586m), bigRational1.Round(16));
            Assert.Equal(BigRational.Create(100.15253545556575860m), bigRational1.Round(17));
            Assert.Equal(BigRational.Create(100.152535455565758595m), bigRational1.Round(18));
            Assert.Equal(BigRational.Create(100.152535455565758595m), bigRational1.Round(19));

            BigRational bigRational2 = BigRational.Create(-100.152535455565758595m);

            Assert.Equal(BigRational.Create(-100m), bigRational2.Round(0));
            Assert.Equal(BigRational.Create(-100.2m), bigRational2.Round(1));
            Assert.Equal(BigRational.Create(-100.15m), bigRational2.Round(2));
            Assert.Equal(BigRational.Create(-100.153m), bigRational2.Round(3));
            Assert.Equal(BigRational.Create(-100.1525m), bigRational2.Round(4));
            Assert.Equal(BigRational.Create(-100.15254m), bigRational2.Round(5));
            Assert.Equal(BigRational.Create(-100.152535m), bigRational2.Round(6));
            Assert.Equal(BigRational.Create(-100.1525355m), bigRational2.Round(7));
            Assert.Equal(BigRational.Create(-100.15253546m), bigRational2.Round(8));
            Assert.Equal(BigRational.Create(-100.152535456m), bigRational2.Round(9));
            Assert.Equal(BigRational.Create(-100.1525354556m), bigRational2.Round(10));
            Assert.Equal(BigRational.Create(-100.15253545557m), bigRational2.Round(11));
            Assert.Equal(BigRational.Create(-100.152535455566m), bigRational2.Round(12));
            Assert.Equal(BigRational.Create(-100.1525354555658m), bigRational2.Round(13));
            Assert.Equal(BigRational.Create(-100.15253545556576m), bigRational2.Round(14));
            Assert.Equal(BigRational.Create(-100.152535455565759m), bigRational2.Round(15));
            Assert.Equal(BigRational.Create(-100.1525354555657586m), bigRational2.Round(16));
            Assert.Equal(BigRational.Create(-100.15253545556575860m), bigRational2.Round(17));
            Assert.Equal(BigRational.Create(-100.152535455565758595m), bigRational2.Round(18));
            Assert.Equal(BigRational.Create(-100.152535455565758595m), bigRational2.Round(19));
        }
Example #13
0
        public void BigRational_Round_DoesNotAllowNegativeDecimals()
        {
            BigRational bigRational = BigRational.Create(1.0m);

            bigRational.Round(out bigRational, -1);
        }