Exemplo n.º 1
0
        public void inbetween()
        {
            var solver = new RelativeOrderSolver <RelativeOrderItem>(Identity);

            var item1 = new RelativeOrderItem();
            var item3 = new RelativeOrderItem();
            var item2 = new RelativeOrderItem().Before(item3).After(item1);

            solver.SolveFor(new[] { item1, item3, item2 });

            var indexByItem = solver
                              .Select((item, index) => (item, index))
                              .ToDictionary(p => p.item, p => p.index);

            Assert.Less(indexByItem[item1], indexByItem[item2]);
            Assert.Less(indexByItem[item2], indexByItem[item3]);
        }
Exemplo n.º 2
0
        public void beforeBackward()
        {
            var solver = new RelativeOrderSolver <RelativeOrderItem>(Identity);

            var item4 = new RelativeOrderItem();
            var item3 = new RelativeOrderItem().Before(item4);
            var item2 = new RelativeOrderItem().Before(item3);
            var item1 = new RelativeOrderItem().Before(item4).Before(item3).Before(item2);

            solver.SolveFor(new[] { item4, item3, item2, item1 });

            var indexByItem = solver
                              .Select((item, index) => (item, index))
                              .ToDictionary(p => p.item, p => p.index);

            Assert.Less(indexByItem[item1], indexByItem[item2]);
            Assert.Less(indexByItem[item2], indexByItem[item3]);
            Assert.Less(indexByItem[item3], indexByItem[item4]);
        }