コード例 #1
0
        public TransformerDatabaseTests()
        {
            _memoryDatabase   = new MemoryDatabase <string, int>();
            _keyTransformer   = new MockTransformer();
            _valueTransformer = new MockTransformer();

            _transformDatabase = new TransformDatabase <string, int, int, string>
                                 (
                db: _memoryDatabase,
                keyTransformer: _keyTransformer.Reverse(),
                valueTransformer: _valueTransformer
                                 );

            _values = new[]
            {
                KeyValuePair.Create(1, "a"),
                KeyValuePair.Create(2, "b"),
                KeyValuePair.Create(3, "c"),
            };

            _expectValues = _values
                            .Select
                            (
                x => KeyValuePair.Create
                (
                    _keyTransformer.TransformPre(x.Key),
                    _valueTransformer.TransformPost(x.Value)
                )
                            )
                            .ToArray();
        }
コード例 #2
0
        public void Enumerate()
        {
            var db = new MemoryDatabase <string, int>();
            var kt = new MockTransformer();
            var vt = new MockTransformer();

            var tdb = new TransformDatabase <string, int, int, string>
                      (
                db: db,
                keyTransformer: new ReverseTransformer <string, int>(kt),
                valueTransformer: vt
                      );

            tdb.InsertRange(new KeyValuePair <int, string>[]
            {
                new KeyValuePair <int, string>(1, "a"),
                new KeyValuePair <int, string>(2, "b"),
                new KeyValuePair <int, string>(3, "c"),
            });

            tdb.EnumerateAggressively(3)
            .Should()
            .BeEquivalentTo(new KeyValuePair <int, string>[]
            {
                new KeyValuePair <int, string>(1, "a"),
                new KeyValuePair <int, string>(2, "b"),
                new KeyValuePair <int, string>(3, "c"),
            });
        }
コード例 #3
0
ファイル: 5_0_0.cs プロジェクト: 993544899/StringDB
        public void WorksIGuess()
        {
            var st = new StringTransformer();

            // using (var fs = File.Open("copy.db", FileMode.OpenOrCreate))
            using (var ms = new MemoryStream())
            {
                using (var lowlevelDBIODevice = new StringDB5_0_0LowlevelDatabaseIODevice(ms, true))
                    using (var dbIODevice = new DatabaseIODevice(lowlevelDBIODevice))
                        using (var iodb = new IODatabase(dbIODevice))
                            using (var db = new TransformDatabase <byte[], byte[], string, string>(iodb, st, st))
                            {
                                db.Insert("test", "value");
                                db.InsertRange(new KeyValuePair <string, string>[]
                                {
                                    new KeyValuePair <string, string>("a,", "c,"),
                                    new KeyValuePair <string, string>("b,", "d,"),
                                });

                                File.WriteAllBytes("sdb.db", ms.ToArray());

                                db.EnumerateAggressively(2)
                                .Should()
                                .BeEquivalentTo
                                (
                                    new KeyValuePair <string, string>[]
                                {
                                    new KeyValuePair <string, string>("test", "value"),
                                    new KeyValuePair <string, string>("a,", "c,"),
                                    new KeyValuePair <string, string>("b,", "d,"),
                                }
                                );
                            }

                ms.Seek(0, SeekOrigin.Begin);
                // ms.CopyTo(fs);
            }
        }