Esempio n. 1
0
        public static void TimingRandom <T>(ITitanicArray <T> arr, IDataIterator <T> iter)
        {
            string name = "TimingRand " + arr.GetType().Name + "-" + iter.GetType().Name;

            var s1 = Stopwatch.StartNew();

            WriteRandom(arr, iter);
            Debug.WriteLine(name + "\tw=" + s1.ElapsedMilliseconds);
            ReadAndTestRandom(arr, iter);
            Debug.WriteLine(name + "\tt=" + s1.ElapsedMilliseconds);
        }
Esempio n. 2
0
        static void ReadAndTestRandom <T>(ITitanicArray <T> arr, IDataIterator <T> iter)
        {
            long len = arr.Length;
            var  seq = LinearFeedbackShiftRegister.SequenceLength(lfsrStart, (ulong)len).GetEnumerator();

            iter.Reset();
            for (long i = 0; i < len; i++)
            {
                seq.MoveNext();
                long x    = (long)seq.Current;
                T    next = iter.GetNext();
                Assert.IsTrue(iter.AreEqual(arr[x], next));
            }
        }
Esempio n. 3
0
        static void WriteRandom <T>(ITitanicArray <T> arr, IDataIterator <T> iter)
        {
            long len = arr.Length;
            var  seq = LinearFeedbackShiftRegister.SequenceLength(lfsrStart, (ulong)len).GetEnumerator();

            iter.Reset();
            for (long i = 0; i < len; i++)
            {
                seq.MoveNext();
                long x    = (long)seq.Current;
                T    next = iter.GetNext();
                arr[x] = next;
            }
        }
Esempio n. 4
0
        public static void ReadWriteTest <T>(ITitanicArray <T> arr, IDataIterator <T> iter)
        {
            long len = arr.Length;

            iter.Reset();
            for (long i = 0; i < len; i++)
            {
                arr[i] = iter.GetNext();
            }
            iter.Reset();
            for (long i = 0; i < len; i++)
            {
                Assert.IsTrue(iter.AreEqual(arr[i], iter.GetNext()));
            }
        }
Esempio n. 5
0
        void SaveDataToFile(ITitanicArray <long> data, string name)
        {
            using (var fs = File.Open(name, FileMode.Create, FileAccess.ReadWrite, FileShare.Read))
                using (var gz = new GZipStream(fs, CompressionLevel.Optimal))
                {
                    WriteHeader(gz);

                    for (long i = 0; i < data.Length; i++)
                    {
                        long   item = data[i];
                        byte[] bs   = BitConverter.GetBytes(item);
                        gz.Write(bs, 0, sizeof(long));
                    }
                }
        }
Esempio n. 6
0
        public static void TimingTest <T>(ITitanicArray <T> arr, IDataIterator <T> iter)
        {
            string name = "TimingTest " + arr.GetType().Name + "-" + iter.GetType().Name;

            var  s1  = Stopwatch.StartNew();
            long len = arr.Length;

            iter.Reset();
            for (long i = 0; i < len; i++)
            {
                arr[i] = iter.GetNext();
            }
            Debug.WriteLine(name + "\tw=" + s1.ElapsedMilliseconds);
            iter.Reset();
            for (long i = 0; i < len; i++)
            {
                Assert.IsTrue(iter.AreEqual(arr[i], iter.GetNext()));
            }
            Debug.WriteLine(name + "\tt=" + s1.ElapsedMilliseconds);
        }
Esempio n. 7
0
 public static void ReadWriteRandom <T>(ITitanicArray <T> arr, IDataIterator <T> iter)
 {
     WriteRandom(arr, iter);
     ReadAndTestRandom(arr, iter);
 }