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); }
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)); } }
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; } }
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())); } }
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)); } } }
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); }
public static void ReadWriteRandom <T>(ITitanicArray <T> arr, IDataIterator <T> iter) { WriteRandom(arr, iter); ReadAndTestRandom(arr, iter); }