Exemple #1
0
        public void TestSimpleJoin()
        {
            for (int i = 0; i < 8; i++)
            {
                Scheduler.WaitFor(Tangle.Set(i, i * 2));
            }

            using (var otherTangle = new Tangle <int>(Scheduler, new SubStreamSource(Storage, "2_", false))) {
                var keys = new List <string>();
                for (int i = 0; i < 8; i++)
                {
                    var key = new String((char)('a' + i), 1);
                    keys.Add(key);
                    Scheduler.WaitFor(otherTangle.Set(key, i));
                }

                var joinResult = Scheduler.WaitFor(
                    otherTangle.Join(
                        Tangle, keys,
                        (leftValue) => leftValue
                        )
                    );

                for (int i = 0; i < 8; i++)
                {
                    var item = joinResult[i];
                    Assert.AreEqual(i, item.Key);
                    Assert.AreEqual(i * 2, item.Value);
                }
            }
        }
Exemple #2
0
        public void TestSelfJoin()
        {
            Scheduler.WaitFor(Tangle.Set(1, 2));
            Scheduler.WaitFor(Tangle.Set(2, 8));
            Scheduler.WaitFor(Tangle.Set(3, 4));
            Scheduler.WaitFor(Tangle.Set(4, 16));

            var joinResult = Scheduler.WaitFor(Tangle.Join(Tangle, new[] { 1, 3 }, (left) => left));

            Assert.AreEqual(2, joinResult[0].Key);
            Assert.AreEqual(8, joinResult[0].Value);
            Assert.AreEqual(4, joinResult[1].Key);
            Assert.AreEqual(16, joinResult[1].Value);
        }
Exemple #3
0
        public void TestSimpleJoin()
        {
            for (int i = 0; i < 8; i++)
                Scheduler.WaitFor(Tangle.Set(i, i * 2));

            using (var otherTangle = new Tangle<int>(Scheduler, new SubStreamSource(Storage, "2_", false))) {
                var keys = new List<string>();
                for (int i = 0; i < 8; i++) {
                    var key = new String((char)('a' + i), 1);
                    keys.Add(key);
                    Scheduler.WaitFor(otherTangle.Set(key, i));
                }

                var joinResult = Scheduler.WaitFor(
                    otherTangle.Join(
                        Tangle, keys,
                        (leftValue) => leftValue
                    )
                );

                for (int i = 0; i < 8; i++) {
                    var item = joinResult[i];
                    Assert.AreEqual(i, item.Key);
                    Assert.AreEqual(i * 2, item.Value);
                }
            }
        }