Example #1
0
        public void Prefers_left_single_branch()
        {
            StateSyncFeed.IPendingSyncItems items = Init();
            items.MaxStateLevel = 64;

            PushState(items, 1, 15); // branch child 16
            PushState(items, 1, 1);  // branch child 1
            PushState(items, 1, 0);  // branch child 0

            items.RecalculatePriorities();
            List <StateSyncItem> batch = items.TakeBatch(256);

            batch[0].Rightness.Should().Be(0);
            batch[1].Rightness.Should().Be(1);
            batch[2].Rightness.Should().Be(15);
        }
Example #2
0
        public void Prioritizes_depth()
        {
            StateSyncFeed.IPendingSyncItems items = Init();
            items.MaxStateLevel = 64;

            PushState(items, 0, 0);
            PushState(items, 32, 0);
            PushState(items, 64, 0);

            items.RecalculatePriorities();
            List <StateSyncItem> batch = items.TakeBatch(256);

            items.Count.Should().Be(0);
            batch[0].Level.Should().Be(64);
            batch[1].Level.Should().Be(32);
            batch[2].Level.Should().Be(0);
        }
Example #3
0
        public void Prioritizes_code_over_storage_over_state()
        {
            StateSyncFeed.IPendingSyncItems items = Init();
            items.MaxStateLevel = 64;

            PushState(items, 64, 0);
            PushStorage(items, 32, 0);
            PushCode(items);

            items.RecalculatePriorities();
            List <StateSyncItem> batch = items.TakeBatch(256);

            items.Count.Should().Be(0);
            batch[0].NodeDataType.Should().Be(NodeDataType.Code);
            batch[1].NodeDataType.Should().Be(NodeDataType.Storage);
            batch[2].NodeDataType.Should().Be(NodeDataType.State);
        }