Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
//		[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();
        }