public void SavePrimes(string filePath, PrimeDataDto primeData)
        {
            throw new NotImplementedException();

            using (FileStream fs = new FileStream(filePath, FileMode.Create))
                using (StreamWriter file = new StreamWriter(fs))
                {
                    file.WriteLine($"// {this.GetType().Name}");
                    file.WriteLine($"// Start Number: {primeData.StartNumber}");
                    file.WriteLine($"// End Number: {primeData.EndNumber}");
                    file.WriteLine($"// Total Items : {primeData.PrimeArray.Length}");
                    file.WriteLine($"// Prime Count: {Utilities.CountBitArray(primeData.PrimeArray)}");

                    //int diffrence = 0;

                    //for (int i = 0; i < primeData.PrimeArray.Length; i++)
                    //{
                    //    diffrence++;

                    //    if (primeData.PrimeArray[i])
                    //    {
                    //        bw.Write(diffrence);
                    //        diffrence = 0;
                    //    }
                    //}
                }
        }
Example #2
0
        public void SavePrimes(string filePath, PrimeDataDto primeData)
        {
            //for (int i = 0; i < data.Length; i++)
            using (StreamWriter file = new StreamWriter(filePath))
            {
                file.WriteLine($"// {this.GetType().Name}");
                file.WriteLine($"// Start Number: {primeData.StartNumber}");
                file.WriteLine($"// End Number: {primeData.EndNumber}");
                file.WriteLine($"// Total Items : {primeData.PrimeArray.Length}");
                file.WriteLine($"// Prime Count: {Utilities.CountBitArray(primeData.PrimeArray)}");

                for (int i = 0; i < primeData.PrimeArray.Length; i++)
                {
                    if (primeData.PrimeArray[i])
                    {
                        file.WriteLine((primeData.StartNumber + (uint)i + 1).ToString("#,##0"));
                        //if (data[i])
                        //{
                        //    ulong number = startNumber + (ulong)i;
                        //    string value = number.ToString() + Environment.NewLine;

                        //    foreach (byte b in Encoding.ASCII.GetBytes(value))
                        //    {
                        //        savestream.WriteByte(b);
                        //    }
                    }
                }
            }
        }
        public void SavePrimes(string filePath, PrimeDataDto primeData)
        {
            using (StreamWriter file = new StreamWriter(filePath))
            {
                file.WriteLine($"// {this.GetType().Name}");
                file.WriteLine($"// Start Number: {primeData.StartNumber}");
                file.WriteLine($"// End Number: {primeData.EndNumber}");
                file.WriteLine($"// Total Items : {primeData.PrimeArray.Length}");
                file.WriteLine($"// Prime Count: {Utilities.CountBitArray(primeData.PrimeArray)}");

                for (int i = 0; i < primeData.PrimeArray.Length; i++)
                {
                    file.Write((primeData.PrimeArray[i] ? "1" : "0"));
                }
            }
        }
        protected static void SaveDataTest(ulong startNumber, ulong endNumber)
        {
            Console.WriteLine($"Genetating data for Saving ({startNumber}, {endNumber})");

            FindPrimesBetweenV7 generator = new FindPrimesBetweenV7();

            Stopwatch sw = new Stopwatch();

            sw.Restart();
            generator.Execute(startNumber, endNumber, new IsPrimeV7());
            sw.Stop();
            PrimeDataDto results = generator.Data;

            Console.WriteLine($"Generated data in {Utilities.ElaspedTimeFormatter(sw.Elapsed)}");

            PerformanceTests.TestSavePerformance(results);
        }
        protected static void SavePrimesTimer(ISavePrimes tester, PrimeDataDto data)
        {
            Console.Write($"{DateTime.Now.ToString()} : {tester.GetType().Name} : ");
            string fileName = string.Format("../saves/{0}_{1}_{2}-{3}.txt",
                                            DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"),
                                            tester.GetType().Name,
                                            data.StartNumber,
                                            data.EndNumber);

            Stopwatch sw = new Stopwatch();

            sw.Restart();
            tester.SavePrimes(fileName, data);
            sw.Stop();

            System.IO.FileInfo f = new System.IO.FileInfo(fileName);

            Console.Write($"Size : {Utilities.CalculateFileSize(f.Length)} : Speed : {Utilities.CalculateTransferSpeed(f.Length, sw.Elapsed.TotalSeconds)} : Time Taken : {PrimeNumbers.Model.Utilities.ElaspedTimeFormatter(sw.Elapsed)}");
            Console.WriteLine();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="tester"></param>
        /// <param name="trier"></param>
        /// <param name="startNumber"></param>
        /// <param name="endNumber"></param>
        /// <returns></returns>
        protected static PrimeDataDto FindPrimesBetweenTimer(IFindPrimesBetween tester, IIsPrime trier, ulong startNumber, ulong endNumber)
        {
            PrimeDataDto results = null;

            System.Diagnostics.Debug.WriteLine($"{tester.GetType().Name} : {trier.GetType().Name} : {startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")}");
            Console.Write($"{DateTime.Now.ToString()} : {tester.GetType().Name} : {trier.GetType().Name} : {startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")} : ");
            Stopwatch sw = new Stopwatch();

            sw.Restart();
            tester.Execute(startNumber, endNumber, trier);
            sw.Stop();

            results = tester.Data;

            //Console.WriteLine($"{DateTime.Now.ToString()} {Environment.NewLine}{tester.GetType().Name} : {trier.GetType().Name}{Environment.NewLine}{startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")}{Environment.NewLine} Time Taken : {PrimeNumbers.Model.Utilities.ElaspedTimeFormatter(sw.Elapsed)}{Environment.NewLine}Result : {result.Count.ToString("#,##0")}{Environment.NewLine}");
            Console.Write($"Result = {results.PrimeNumbers.Count().ToString("#,##0")} : Time Taken : {PrimeNumbers.Model.Utilities.ElaspedTimeFormatter(sw.Elapsed)}");
            Console.WriteLine();

            return(results);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        /// <param name="allowedVersionNumbers"></param>
        protected static void TestSavePerformance(PrimeDataDto data, int[] allowedVersionNumbers = null)
        {
            Type[] findPrimesBetweenTypes = PerformanceTests.GetTestingTypes("PrimeNumbers.Model", "PrimeDataV", allowedVersionNumbers);

            if ((findPrimesBetweenTypes != null) &&
                (findPrimesBetweenTypes.Any()))
            {
                Console.WriteLine($"SavingPrimes Testing with {data.StartNumber.ToString("#,##0")} - {data.EndNumber.ToString("#,##0")}");

                foreach (Type type in findPrimesBetweenTypes)
                {
                    ISavePrimes savePrimesTester = (ISavePrimes)Activator.CreateInstance(type);

                    PerformanceTests.SavePrimesTimer(savePrimesTester, data);
                }
            }
            else
            {
                Console.WriteLine("No FindPrimesBetween Classes found to test with");
            }

            Console.WriteLine();
        }
Example #8
0
        public void SavePrimes(string filePath, PrimeDataDto primeData)
        {
            using (StreamWriter file = new StreamWriter(filePath))
            {
                int  loopCount = 0;
                bool partial   = false;

                if (primeData.PrimeArray.Count % 8 == 0)
                {
                    loopCount = primeData.PrimeArray.Count / 8;
                }
                else
                {
                    loopCount = (primeData.PrimeArray.Count - (primeData.PrimeArray.Count % 8)) / 8;
                    partial   = true;
                }

                file.WriteLine($"// {this.GetType().Name}");
                file.WriteLine($"// Start Number: {primeData.StartNumber}");
                file.WriteLine($"// End Number: {primeData.EndNumber}");
                file.WriteLine($"// Total Items : {primeData.PrimeArray.Length}");
                file.WriteLine($"// Prime Count: {Utilities.CountBitArray(primeData.PrimeArray)}");

                for (int i = 0; i < loopCount; i++)
                {
                    int index = i * 8;

                    byte data = 0;

                    if (primeData.PrimeArray[index])
                    {
                        data += 1;
                    }
                    if (primeData.PrimeArray[index + 1])
                    {
                        data += 2;
                    }
                    if (primeData.PrimeArray[index + 2])
                    {
                        data += 4;
                    }
                    if (primeData.PrimeArray[index + 3])
                    {
                        data += 8;
                    }
                    if (primeData.PrimeArray[index + 4])
                    {
                        data += 16;
                    }
                    if (primeData.PrimeArray[index + 5])
                    {
                        data += 32;
                    }
                    if (primeData.PrimeArray[index + 6])
                    {
                        data += 64;
                    }
                    if (primeData.PrimeArray[index + 7])
                    {
                        data += 128;
                    }

                    file.Write(data);
                }

                if (partial)
                {
                    file.WriteLine();
                    int index = loopCount * 8;

                    for (int i = index; i < primeData.PrimeArray.Count; i++)
                    {
                        file.Write((primeData.PrimeArray[i] ? "1" : "0"));
                    }
                }
            }
        }