public void DivisionTest() { var(div, remaining) = NumberWork.GetSufficientPartForDivision(1306, 16); Assert.Equal(130, div); Assert.Equal(6, remaining); (div, remaining) = NumberWork.GetSufficientPartForDivision(3, 2); Assert.Equal(3, div); Assert.Equal(-1, remaining); }
public void GetFirstDigitTest() { var(digit, remaining) = NumberWork.GetFirstDigit(3458977); Assert.Equal(3, digit); Assert.Equal(458977, remaining); (digit, remaining) = NumberWork.GetFirstDigit(7); Assert.Equal(7, digit); Assert.Equal(-1, remaining); (digit, remaining) = NumberWork.GetFirstDigit(0); Assert.Equal(0, digit); Assert.Equal(-1, remaining); }
public View BuildViewByModel(Model model) { View view = new View(); int degree = NumberWork.GetMostRoundingDegree(model.First, model.Second); long xArg = (long)(model.First * NumberWork.Pow(10, degree)); long yArg = (long)(model.Second * NumberWork.Pow(10, degree)); int maxLength = NumberWork.GetMaxLength(xArg, yArg); view.AddLine(makeIndent(Indent) + xArg); view.AddLine(makeIndent(Indent + maxLength - NumberWork.NumLength(yArg)) + yArg); view.AddLine(makeIndent(Indent) + makeLine(maxLength)); foreach (var component in model.Components) { view.AddLine(makeIndent(Indent + maxLength - NumberWork.NumLength(component)) + component); } view.AddLine(makeIndent(Indent) + makeLine(maxLength)); view.AddLine(makeIndent(Indent) + model.Result); return(view); }
private long[] computeComponents() { int degree = NumberWork.GetMostRoundingDegree(First, Second); long xArg = (long)(First * NumberWork.Pow(10, degree)); long yArg = (long)(Second * NumberWork.Pow(10, degree)); int maxLength = NumberWork.GetMaxLength(xArg, yArg); long[] components = new long[maxLength]; if (NumberWork.NumLength(xArg) < NumberWork.NumLength(yArg)) { Util.Swap(ref xArg, ref yArg); } long[] xComps = NumberWork.GetNumberComponents(xArg); long[] yComps = NumberWork.GetNumberComponents(yArg); for (int i = 0; i < maxLength; i++) { components[i] = xComps[i] + (i < yComps.Length ? yComps[i] : 0); } return(components); }
public void RoundingDegreeTest() { Assert.Equal(2, NumberWork.GetMostRoundingDegree(13.6, 12.75)); Assert.Equal(1, NumberWork.GetMostRoundingDegree(13.6, 10)); Assert.Equal(0, NumberWork.GetMostRoundingDegree(10, 20)); }
public void GetMaxLengthTest() { Assert.Equal(6, NumberWork.GetMaxLength(345, 867_498)); Assert.Equal(3, NumberWork.GetMaxLength(0, 756)); }
public void NumLengthTest() { Assert.Equal(3, NumberWork.NumLength(567)); }
public void ConcatTest() { Assert.Equal(346, NumberWork.Concat(3, 46)); Assert.Equal(346, NumberWork.Concat(34, 6)); Assert.Equal(35_468, NumberWork.Concat(35, 468)); }