Ejemplo n.º 1
0
        public void Deadend_0()
        {
            var rng         = new Mock <IRandomNumberGenerator>();
            var evaluator   = new Mock <INodeEvaluator>();
            var bitAnalyser = new Mock <IBitAnalyser>();
            var stepper     = new Stepper(evaluator.Object, bitAnalyser.Object);

            MatrixSolution matrixSolution = new MatrixSolution
            {
                IsOptimized = true,
                NoOfStates  = 1,
                Rows        = new[]
                {
                    new MatrixRowSolution
                    {
                        Branch   = 0,
                        Approach = SolutionType.DeadEnd,
                    },
                }
            };
            var machine = new Solver(
                rng.Object,
                stepper
                );

            Assert.IsTrue(machine.Resolve(matrixSolution, 0, out int next));
            Assert.AreEqual(0, next);
            Assert.IsTrue(machine.Resolve(matrixSolution, 0, out int next1));
            Assert.AreEqual(0, next1);
        }
Ejemplo n.º 2
0
        public void Setup()
        {
            var source = new ushort[4, 4]
            {
                { 0, 1, 1, 1 },
                { 2, 0, 2, 2 },
                { 3, 3, 0, 3 },
                { 6, 6, 6, 0 },
            };

            var slicer    = new Mock <ISlicer>();
            var secondary = new Mock <IRowValleyOptimizer>();
            var optimizer = new MatrixOptimizer(slicer.Object, secondary.Object);

            var rowDenominators = new ushort[] { 3, 6, 9, 18 };

            mSolution = optimizer.Optimize(rowDenominators, source);
        }
Ejemplo n.º 3
0
        public void Setup()
        {
            var source = new ushort[4, 4]
            {
                { 1, 1, 1, 1 },   // EVEN ALL
                { 0, 1, 0, 0 },   // DEAD END
                { 0, 100, 0, 0 }, // REDIRECT
                { 0, 0, 0, 0 },   // NO-OP
            };

            var slicer    = new Mock <ISlicer>();
            var secondary = new Mock <IRowValleyOptimizer>();
            var optimizer = new MatrixOptimizer(slicer.Object, secondary.Object);

            var rowDenominators = new ushort[] { 4, 1, 100, 1 };

            mSolution = optimizer.Optimize(rowDenominators, source);
        }
Ejemplo n.º 4
0
        public void Setup()
        {
            var source = new ushort[4, 4]
            {
                { 1, 0, 0, 0 },
                { 0, 1, 0, 0 },
                { 0, 0, 1, 0 },
                { 0, 0, 0, 1 },
            };

            var slicer    = new Mock <ISlicer>();
            var secondary = new Mock <IRowValleyOptimizer>();
            var optimizer = new MatrixOptimizer(slicer.Object, secondary.Object);

            const ushort MaxProbability = 1;

            var rowDenominators = new[] { MaxProbability, MaxProbability, MaxProbability, MaxProbability };

            mSolution = optimizer.Optimize(rowDenominators, source);
        }
Ejemplo n.º 5
0
 public void Dispose()
 {
     mSolution = null;
 }