private void VerifyPartialResult(MpirRandom rnd, RationalExpression expr, long expected) { rnd.Seed(123); using (var r = new HugeRational()) { r.Value = expr; Assert.AreEqual(expected.ToString() + "/1", r.ToString()); } }
private void MarkExpressionsUsed(List <Type> allExpressions, RationalExpression expr) { var type = expr.GetType(); allExpressions.Remove(type); var children = type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance) .Where(x => typeof(RationalExpression).IsAssignableFrom(x.FieldType)) .Select(x => (RationalExpression)x.GetValue(expr)) .Where(x => x != null) .ToList(); foreach (var childExpr in children) { MarkExpressionsUsed(allExpressions, childExpr); } }