示例#1
0
        void DoTest(Candidate cand, int n, bool showFullValue, bool verbose)
        {
            this.watch.Reset();
            this.watch.Start();
            XInt nFact = cand.GetValue(n);

            this.watch.Stop();

            int checksum = nFact.GetHashCode();
            var ms       = this.watch.ElapsedMilliseconds;
            var eddms    = XMath.ExactDecimalDigitsPerMillisecond(n, ms);
            var res      = new Result(cand, ms, checksum, eddms);

            cand.Performance[n] = res;

            if (verbose)
            {
                this.winsole.WriteRed(string.Format(
                                          // "\nSUMMARY: Computed the factorial "
                                          "\n{0}! = {1}\nAlgorithm used: {2}\nCheckSum: <{3:X}>\nComputation in {4:D} ms.\nDecimal digits per ms {5}.\n",
                                          n, XMath.AsymptFactorial(n), cand.Name, checksum, ms, eddms));
            }

            if (showFullValue)
            {
                this.winsole.Write(nl + "Now converting to string. Note: It takes longer to convert than to compute!" + nl + nl);
                this.winsole.WriteLine(nFact.ToString());
            }
        }