public void SignatureResult() { string pair = "USD_JPY_Volume"; TickReader tickReader = new TickReader(); tickReader.LogProgress = true; tickReader.Initialize("Test\\DataCache", pair); int totalBytes = 0; SignatureCompressor compressor = new SignatureCompressor(); ByteMemory compressed = new ByteMemory("compressed"); int compressedLength = 0; try { TickBinary tick = new TickBinary(); TickImpl tickImpl = new TickImpl(); for (int i = 0; i < 101; i++) { tickReader.ReadQueue.Dequeue(ref tick); tickImpl.Inject(tick); compressed.Reset(); compressor.CompressTick(tick, compressed.Memory); totalBytes += compressedLength; } log.Debug(compressor.Signature.ToString()); Assert.AreEqual(TestSignature, compressor.Signature); for (int i = 0; i < 200; i++) { tickReader.ReadQueue.Dequeue(ref tick); tickImpl.Inject(tick); compressed.Reset(); compressor.CompressTick(tick, compressed.Memory); totalBytes += compressedLength; int length = compressed.Bytes[0]; int diffBytes = length / 8 + 1; log.Debug(compressedLength + ": " + compressed.Bytes[0] + " " + ByteArrayToString(compressor.Difference, 0, compressor.DiffLength)); } } catch (CollectionTerminatedException) { } log.Debug("Total Compressed Bytes: " + totalBytes); compressor.LogCounts(); }
// [Test] public void CompressTickTest() { string pair = "USD_JPY_Volume"; TickReader tickReader = new TickReader(); tickReader.LogProgress = true; tickReader.Initialize("Test\\DataCache", pair); int totalBytes = 0; SignatureCompressor compressor = new SignatureCompressor(); SignatureCompressor decompressor = new SignatureCompressor(); ByteMemory output = new ByteMemory("compressed"); int length = 0; try { TickBinary tick = new TickBinary(); TickImpl tickImpl = new TickImpl(); for (int i = 0; i < 101; i++) { tickReader.ReadQueue.Dequeue(ref tick); tickImpl.Inject(tick); compressor.CompareTick(tickImpl); if (compressor.Count < 100) { compressor.CopyMemory(output.Bytes, out length); } compressor.SwapBuffers(); compressor.Count++; if (compressor.Count % 100 == 0) { compressor.CreateSignature(); compressor.ResetCounters(); } } string temp = ""; for (int i = 0; i < compressor.Signature.Length; i++) { if (i != 0) { temp += ", "; } temp += compressor.Signature[i]; } log.Notice("signature = " + temp); Assert.AreEqual(TestSignature, compressor.Signature); byte[] buffer = new byte[1024]; for (int i = 0; i < 200; i++) { tickReader.ReadQueue.Dequeue(ref tick); tickImpl.Inject(tick); compressor.CompareTick(tickImpl); compressor.CalculateDifference(compressor.Current.Bytes, compressor.Previous.Bytes, compressor.Current.Length); Array.Copy(compressor.Current.Bytes, buffer, compressor.Current.Length); compressor.ReverseDifference(compressor.Current.Bytes, compressor.Previous.Bytes, compressor.Previous.Length); Assert.AreEqual(buffer, compressor.Current.Bytes); compressor.WriteMemory(output.Bytes, out length); compressor.SwapBuffers(); compressor.Count++; if (compressor.Count % 100 == 0) { compressor.CreateSignature(); compressor.ResetCounters(); } } } catch (CollectionTerminatedException) { } log.Debug("Total Compressed Bytes: " + totalBytes); compressor.LogCounts(); }