Ejemplo n.º 1
0
        static async Task CheckSameAsync(IChaserNode expected, IChaserNode actual)
        {
            Assert.AreEqual(expected.Caption, actual.Caption);
            Assert.AreEqual(expected.Probability, actual.Probability);

            var expectedEnumerator = (await expected.GetChildrenAsync(0)).GetEnumerator();
            var actualEnumerator   = (await actual.GetChildrenAsync(0)).GetEnumerator();

            var maxProbability = 1.0;
            var probabilitySum = 0.0;
            var isLeaf         = true;

            while (expectedEnumerator.MoveNext())
            {
                isLeaf = false;

                Assert.IsTrue(actualEnumerator.MoveNext());

                var expectedChild = expectedEnumerator.Current;
                var actualChild   = actualEnumerator.Current;

                await CheckSameAsync(expectedChild, actualChild);

                Assert.IsTrue(expectedChild.Probability <= maxProbability);
                maxProbability  = expectedChild.Probability;
                probabilitySum += expectedChild.Probability;
            }
            Assert.IsTrue(isLeaf || !actualEnumerator.MoveNext());

            Assert.IsTrue(0 <= maxProbability);
            Assert.IsTrue(probabilitySum <= 1.0);
        }
Ejemplo n.º 2
0
 public ChaserQueryNode(IChaserQueryNode <Coords> parent, IChaserNode node, Func <IReadOnlyList <IChaserNode>, IReadOnlyList <Coords> > packingAlgorithm, Coords coords)
 {
     Parent            = parent;
     _node             = node;
     _packingAlgorithm = packingAlgorithm;
     _coords           = coords;
     IsUpdateNeeded    = true;
 }
Ejemplo n.º 3
0
 public AlphabeticChaserNode(IChaserNode wrapped, double probabilityLimit)
 {
     _wrapped          = wrapped;
     _probabilityLimit = probabilityLimit;
 }