Exemplo n.º 1
0
        public void AddAndLookupItems()
        {
            MemTable mt = new MemTable ();

            List<KeyValuePair<Key, Value>> values = new List<KeyValuePair<Key, Value>> ();

            for (int i = 0; i < 10000; i++) {
                var randomKey = Key.Random (40);
                var randomValue = Value.Random (256);

                values.Add (new KeyValuePair<Key, Value> (randomKey, randomValue));
                mt.Add (randomKey, randomValue);
            }

            Value value;
            foreach (var pair in values) {
                Assert.IsTrue (mt.Lookup (pair.Key, out value));
                Assert.AreEqual (pair.Value, value);
            }
            Assert.IsFalse (mt.Lookup (Key.Random (40), out value));

            Assert.AreEqual (10000 * (40 + 256), mt.Size);
            Assert.IsTrue (mt.Full);
        }
Exemplo n.º 2
0
 public bool Lookup(Key key, out Value value)
 {
     return(_memTable.Lookup(key, out value));
 }
Exemplo n.º 3
0
        public void SetItemsMultipleTimes()
        {
            MemTable mt = new MemTable ();

            Dictionary<Key, Value> values = new Dictionary<Key, Value> ();

            for (int i = 0; i < 10000; i++) {
                var randomKey = new Key (new ByteArray (BitConverter.GetBytes (i % 10)));
                var randomValue = Value.Random (256);

                values [randomKey] = randomValue;
                mt.Add (randomKey, randomValue);
            }

            Value value;
            foreach (var pair in values) {
                Assert.IsTrue (mt.Lookup (pair.Key, out value));
                Assert.AreEqual (pair.Value, value);
            }
            Assert.IsFalse (mt.Lookup (Key.Random (4), out value));
            Assert.AreEqual (10, mt.Enumerate ().Count ());
            Assert.AreEqual (10, values.Count);
        }
Exemplo n.º 4
0
        public void AddAndLookupItemsPersisted()
        {
            string path = Path.GetFullPath ("TestData\\AddAndLookupItemsPersisted");
            if (!Directory.Exists (path)) Directory.CreateDirectory (path);

            JournalWriter jw = new JournalWriter ("TestData\\AddAndLookupItemsPersisted", 523, false);

            List<KeyValuePair<Key, Value>> values = new List<KeyValuePair<Key, Value>> ();

            for (int i = 0; i < 10000; i++) {
                var randomKey = Key.Random (40);
                var randomValue = Value.Random (256);

                values.Add (new KeyValuePair<Key, Value> (randomKey, randomValue));
                jw.Add (randomKey, randomValue);
            }
            jw.Close ();

            MemTable mtl = new MemTable ();
            mtl.ReadFromJournal ("TestData\\AddAndLookupItemsPersisted", 523);

            Value value;
            foreach (var pair in values) {
                Assert.IsTrue (mtl.Lookup (pair.Key, out value));
                Assert.AreEqual (pair.Value, value);
            }
            Assert.IsFalse (mtl.Lookup (Key.Random (40), out value));

            Assert.AreEqual (10000 * (40 + 256), mtl.Size);
            Assert.IsTrue (mtl.Full);
        }