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)); }
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)); } }
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)); } } }
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)); }
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; }
public void BigRational_Round_DoesNotAllowNegativeDecimals() { BigRational bigRational = BigRational.Create(1.0m); Assert.Throws <ArgumentOutOfRangeException>(() => bigRational.Round(out bigRational, -1)); }
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)); }
public void BigRational_Round_DoesNotAllowNegativeDecimals() { BigRational bigRational = BigRational.Create(1.0m); bigRational.Round(out bigRational, -1); }