public void Test(int pointCount) { SortedPointBuffer <HistorianKey, HistorianValue> points = new SortedPointBuffer <HistorianKey, HistorianValue>(pointCount, true); Random r = new Random(1); HistorianKey key = new HistorianKey(); HistorianValue value = new HistorianValue(); for (int x = 0; x < pointCount; x++) { key.PointID = (ulong)r.Next(); key.Timestamp = (ulong)r.Next(); value.Value1 = key.PointID; points.TryEnqueue(key, value); } points.IsReadingMode = true; using (BinaryStream bs = new BinaryStream(true)) { //var tree = new SequentialSortedTreeWriter<HistorianKey, HistorianValue>(bs, 256, SortedTree.FixedSizeNode); //SequentialSortedTreeWriter<HistorianKey, HistorianValue>.Create(bs, 512, CreateTsCombinedEncoding.TypeGuid, points); SequentialSortedTreeWriter <HistorianKey, HistorianValue> .Create(bs, 512, EncodingDefinition.FixedSizeCombinedEncoding, points); SortedTree <HistorianKey, HistorianValue> sts = SortedTree <HistorianKey, HistorianValue> .Open(bs); r = new Random(1); for (int x = 0; x < pointCount; x++) { key.PointID = (ulong)r.Next(); key.Timestamp = (ulong)r.Next(); sts.Get(key, value); if (value.Value1 != key.PointID) { throw new Exception(); } } } }
public void TestCompressCases() { using (BinaryStream bs = new BinaryStream()) { SortedTree <HistorianKey, HistorianValue> tree = SortedTree <HistorianKey, HistorianValue> .Create(bs, 4096, HistorianFileEncodingDefinition.TypeGuid); HistorianKey key = new HistorianKey(); HistorianKey key1 = new HistorianKey(); HistorianValue value = new HistorianValue(); key.Timestamp = 0; key.PointID = 0; key.EntryNumber = 0; value.Value1 = 0; value.Value2 = 0; value.Value3 = 0; tree.Add(key, value); tree.Get(key, value); Assert.AreEqual(0ul, value.Value1); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.PointID = 1; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(0ul, value.Value1); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.PointID = 2; value.Value1 = 1; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(1ul, value.Value1); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.PointID = 3; value.Value1 = 561230651435234523ul; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(561230651435234523ul, value.Value1); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.PointID = 35602353232; value.Value1 = 561230651435234523ul; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(561230651435234523ul, value.Value1); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.PointID++; value.Value1 = 561230651435234523ul; value.Value2 = 561230651435234524ul; value.Value3 = 561230651435234525ul; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(561230651435234523ul, value.Value1); Assert.AreEqual(561230651435234524ul, value.Value2); Assert.AreEqual(561230651435234525ul, value.Value3); key.EntryNumber = 1; value.Value1 = 561230651435234523ul; value.Value2 = 561230651435234524ul; value.Value3 = 561230651435234525ul; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(561230651435234523ul, value.Value1); Assert.AreEqual(561230651435234524ul, value.Value2); Assert.AreEqual(561230651435234525ul, value.Value3); key.PointID++; key.EntryNumber = 0; value.AsSingle = 60.1f; value.Value2 = 0; value.Value3 = 0; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(60.1f, value.AsSingle); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.PointID++; key.EntryNumber = 0; value.AsSingle = -60.1f; value.Value2 = 0; value.Value3 = 0; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(-60.1f, value.AsSingle); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); key.Timestamp++; key.EntryNumber = 0; value.Value1 = 0; value.Value2 = 0; value.Value3 = 0; tree.Add(key, value); tree.Get(key1, value); tree.Get(key, value); Assert.AreEqual(0ul, value.Value1); Assert.AreEqual(0ul, value.Value2); Assert.AreEqual(0ul, value.Value3); } }