public void IfCollectionNullDontTryToAddNameIdConsiderationTest()
        {
            _considerations.Clear();
            var c = new CompositeConsideration();

            Assert.That(c.AddConsideration("some") == false);
        }
Ejemplo n.º 2
0
        Option CreateOptionA()
        {
            var optionRootA = new Option();

            optionRootA.Measure = new Chebyshev();
            optionRootA.SetAction(new MockAction());
            optionRootA.NameId = "Root Option A";

            var optionL1A = new CompositeConsideration {
                Measure = new Chebyshev()
            };

            optionL1A.NameId = "l1a";
            var optionL2A = new CompositeConsideration {
                Measure = new Chebyshev()
            };

            optionL2A.NameId = "l2a";
            optionRootA.AddConsideration(optionL1A);
            optionRootA.AddConsideration(optionL2A);
            optionL1A.AddConsideration(_c1);
            optionL1A.AddConsideration(_c2);
            optionL2A.AddConsideration(_c3);
            optionL2A.AddConsideration(_c4);
            return(optionRootA);
        }
Ejemplo n.º 3
0
        Option CreateOptionB()
        {
            var optionRootB = new Option();

            optionRootB.Measure = new Chebyshev();
            optionRootB.NameId  = "Root Option B";
            optionRootB.SetAction(new MockAction());
            var optionL1B = new CompositeConsideration {
                Measure = new Chebyshev()
            };

            optionL1B.NameId = "l1b";
            var optionL2B = new CompositeConsideration {
                Measure = new Chebyshev()
            };

            optionL2B.NameId = "l2b";
            optionRootB.AddConsideration(optionL1B);
            optionRootB.AddConsideration(optionL2B);
            optionL1B.AddConsideration(_c5);
            optionL1B.AddConsideration(_c6);
            optionL2B.AddConsideration(_c7);
            optionL2B.AddConsideration(_c8);
            return(optionRootB);
        }
        internal static ICompositeConsideration ConstrainedWeightedMetrics(float pNorm = 2.0f, float lowerBound = 0.0f)
        {
            var consideration = new CompositeConsideration {
                Measure = new ConstrainedWeightedMetrics(pNorm, lowerBound)
            };

            return(consideration);
        }
        internal static ICompositeConsideration Multiplicative()
        {
            var consideration = new CompositeConsideration {
                Measure = new MultiplicativePseudoMeasure()
            };

            return(consideration);
        }
        internal static ICompositeConsideration ConstrainedChebyshev(float lowerBound = 0.0f)
        {
            var consideration = new CompositeConsideration {
                Measure = new ConstrainedChebyshev(lowerBound)
            };

            return(consideration);
        }
        internal static ICompositeConsideration WeightedMetrics(float pNorm = 2.0f)
        {
            var consideration = new CompositeConsideration {
                Measure = new WeightedMetrics(pNorm)
            };

            return(consideration);
        }
        internal static ICompositeConsideration Chebyshev()
        {
            var consideration = new CompositeConsideration {
                Measure = new Chebyshev()
            };

            return(consideration);
        }
        internal static ICompositeConsideration Create(IMeasure measure)
        {
            var consideration = new CompositeConsideration {
                Measure = measure
            };

            return(consideration);
        }
        /// <summary>
        /// Creates a composite consideration using the <see cref="T:Crystal.Chebyshev"/> measure.
        /// </summary>
        /// <param name="nameId">The name identifier.</param>
        /// <param name="collection">The collection.</param>
        public static ICompositeConsideration Chebyshev(string nameId, IConsiderationCollection collection)
        {
            var consideration = new CompositeConsideration(nameId, collection)
            {
                Measure = new Chebyshev()
            };

            return(consideration);
        }
        /// <summary>
        /// Creates a composite consideration using the <see cref="T:Crystal.MultiplicativePseudoMeasure"/>.
        /// </summary>
        /// <param name="nameId">The name identifier.</param>
        /// <param name="collection">The collection.</param>
        public static ICompositeConsideration Multiplicative(string nameId, IConsiderationCollection collection)
        {
            var consideration = new CompositeConsideration(nameId, collection)
            {
                Measure = new MultiplicativePseudoMeasure()
            };

            return(consideration);
        }
        /// <summary>
        /// Creates a composite consideration using the <see cref="T:Crystal.ConstrainedWeightedMetrics"/> pseudo-measure.
        /// </summary>
        /// <param name="nameId">The name identifier.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="pNorm">The p norm.</param>
        /// <param name="lowerBound">The lower bound.</param>
        public static ICompositeConsideration ConstrainedWeightedMetrics(string nameId, IConsiderationCollection collection,
                                                                         float pNorm = 2.0f, float lowerBound = 0.0f)
        {
            var consideration = new CompositeConsideration(nameId, collection)
            {
                Measure = new ConstrainedWeightedMetrics(pNorm, lowerBound)
            };

            return(consideration);
        }
        /// <summary>
        /// Creates a composite consideration using the <see cref="T:Crystal.ConstrainedChebyshev"/> pseudo-measure.
        /// </summary>
        /// <param name="nameId">The name identifier.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="lowerBound">The lower bound.</param>
        public static ICompositeConsideration ConstrainedChebyshev(string nameId, IConsiderationCollection collection,
                                                                   float lowerBound = 0.0f)
        {
            var consideration = new CompositeConsideration(nameId, collection)
            {
                Measure = new ConstrainedChebyshev(lowerBound)
            };

            return(consideration);
        }
        /// <summary>
        /// Creates a composite consideration using the <see cref="T:Crystal.WeightedMetrics"/> measure.
        /// </summary>
        /// <param name="nameId">The name identifier.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="pNorm">The p norm.</param>
        public static ICompositeConsideration WeightedMetrics(string nameId, IConsiderationCollection collection,
                                                              float pNorm = 2.0f)
        {
            var consideration = new CompositeConsideration(nameId, collection)
            {
                Measure = new WeightedMetrics(pNorm)
            };

            return(consideration);
        }
        /// <summary>
        /// Creates a composite consideration using the given measure.
        /// </summary>
        /// <param name="nameId">The name identifier.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="measure">The measure.</param>
        public static ICompositeConsideration Create(string nameId, IConsiderationCollection collection,
                                                     IMeasure measure)
        {
            var consideration = new CompositeConsideration(nameId, collection)
            {
                Measure = measure
            };

            return(consideration);
        }
Ejemplo n.º 16
0
        protected override void DefineConsiderations()
        {
            C = new BladderConsideration(Considerations);
            C = new ShowerConsideration(Considerations);
            C = new HungerConsideration(Considerations);
            C = new ThirstConsideration(Considerations);
            C = new EnergyConsideration(Considerations);
            C = new TirednessConsideration(Considerations);
            C = new HowUnfitConsideration(Considerations);
            C = new GreedConsideration(Considerations);
            C = new CuriosityConsideration(Considerations);

            Cc = new CompositeConsideration(ConsiderationDefs.LiveLong, Considerations);
            Cc.AddConsideration(ConsiderationDefs.Tiredness);
            Cc.AddConsideration(ConsiderationDefs.Hunger);
            Cc.AddConsideration(ConsiderationDefs.Thirst);
            Cc.Measure = new Chebyshev();

            Cc = new CompositeConsideration(ConsiderationDefs.Prosper, Considerations);
            Cc.AddConsideration(ConsiderationDefs.Curiosity);
            Cc.AddConsideration(ConsiderationDefs.Greed);
            Cc.Measure = new WeightedMetrics(3.0f);
        }