Esempio n. 1
0
        public void ImplicitOperatorExceptions()
        {
            bool exceptionCaught = false;

            try
            {
                QrtValue val = null;
            }
            catch (ArgumentNullException)
            {
                exceptionCaught = true;
            }

            //Assert.IsTrue(exceptionCaught);

            exceptionCaught = false;

            try
            {
                QrtValue val = new DiscreteUniformDistribution(1.0, 5.0);
            }
            catch (ArgumentException)
            {
                exceptionCaught = true;
            }

            Assert.IsTrue(exceptionCaught);
        }
Esempio n. 2
0
        public void DistributionQrtValue()
        {
            Simulation.NumberOfSamples = 5;
            JsonSerializer serializer = JsonSerializer.Create(JsonSettings.SerializerSettings);

            string name = "My Distribution";

            var distr = new DiscreteUniformDistribution(1, 5, 0)
            {
                Name = name
            };

            QrtValue qrtValue = distr;

            string distrJson = JObject.FromObject(distr, serializer).ToString();
            string qrtJson   = JObject.FromObject(qrtValue, serializer).ToString();

            Simulation.ClearDistributionList();

            var newDistr    = JObject.Parse(distrJson).ToObject <DiscreteUniformDistribution>(serializer);
            var newQrtValue = JObject.Parse(qrtJson).ToObject <QrtValue>(serializer);

            Assert.AreEqual(distr.Guid, newQrtValue.DistributionValue.Guid);
            Assert.AreEqual(distr.ConstrainedToInt, newQrtValue.DistributionValue.ConstrainedToInt);
            Assert.AreEqual(distr.Minimum, newQrtValue.Minimum);
            Assert.AreEqual(distr.Maximum, newQrtValue.Maximum);

            Assert.AreEqual(distr.ConstrainedToInt, newQrtValue.ConstrainedToInt);
            Assert.IsTrue(newQrtValue.IsDistribution);
        }
Esempio n. 3
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader == null)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            JToken jToken = ((JTokenReader)reader).CurrentToken;

            var qrtValue = new QrtValue
            {
                IsDistribution   = jToken[nameof(QrtValue.IsDistribution)].Value <bool>(),
                ConstrainedToInt = jToken[nameof(QrtValue.ConstrainedToInt)].Value <bool>()
            };

            if (!qrtValue.IsDistribution)
            {
                qrtValue.ScalarValue = jToken[nameof(QrtValue.ScalarValue)].Value <double>();
            }
            else
            {
                string guidString = jToken[nameof(QrtValue.DistributionGuid)].Value <string>();
                qrtValue.DistributionGuid = new Guid(guidString);
            }

            return(qrtValue);
        }
Esempio n. 4
0
        public void ScalarDoubleQrtValue()
        {
            JsonSerializer serializer = JsonSerializer.Create(JsonSettings.SerializerSettings);

            QrtValue val = 5.0;

            string json   = JObject.FromObject(val, serializer).ToString();
            var    newVal = JObject.Parse(json).ToObject <QrtValue>();

            Assert.AreEqual(val.ConstrainedToInt, newVal.ConstrainedToInt);
            Assert.AreEqual(val.IsDistribution, newVal.IsDistribution);
            Assert.AreEqual(val.ScalarValue, newVal.ScalarValue);
        }
Esempio n. 5
0
        public void IndexScalar()
        {
            Simulation.NumberOfSamples = ExpectedResults.NumberOfSamples;

            const double val = 45.765;

            QrtValue qrtVal = val;

            for (int i = 0; i < ExpectedResults.NumberOfSamples; i++)
            {
                Assert.AreEqual(qrtVal[i], val);
            }
        }
Esempio n. 6
0
        public void IndexDistribution()
        {
            Simulation.NumberOfSamples = ExpectedResults.NumberOfSamples;

            ContinuousUniformDistribution distr = new ContinuousUniformDistribution(1.0, 1000.0);

            QrtValue qrtVal = distr;

            for (int i = 0; i < ExpectedResults.NumberOfSamples; i++)
            {
                Assert.AreEqual(distr.GetResult()[i], qrtVal[i]);
            }
        }
Esempio n. 7
0
        public void ImplicitOperatorDistributionInteger()
        {
            Simulation.NumberOfSamples = ExpectedResults.NumberOfSamples;

            DiscreteUniformDistribution distr = new DiscreteUniformDistribution(1, 1000);

            QrtValue qrtVal = distr;

            Assert.IsTrue(qrtVal.IsDistribution);
            Assert.IsTrue(qrtVal.ConstrainedToInt);
            Assert.AreEqual(qrtVal.ScalarValue, 0);
            Assert.AreEqual(qrtVal.DistributionValue.GetResult(), distr.GetResult());
        }
Esempio n. 8
0
        public void ImplicitOperatorDistributionDouble()
        {
            Simulation.NumberOfSamples = ExpectedResults.NumberOfSamples;

            ContinuousUniformDistribution distr = new ContinuousUniformDistribution(1.0, 1000.0);

            QrtValue qrtVal = distr;

            Assert.IsTrue(qrtVal.IsDistribution);
            Assert.IsFalse(qrtVal.ConstrainedToInt);
            Assert.AreEqual(qrtVal.ScalarValue, 0);
            Assert.AreEqual(qrtVal.DistributionValue.GetResult(), distr.GetResult());
        }
Esempio n. 9
0
        public void ImplicitOperatorInteger()
        {
            const int Val = 5;

            Simulation.NumberOfSamples = NumberOfSamples;

            QrtValue obj = Val;

            Assert.IsFalse(obj.IsDistribution);
            Assert.IsTrue(obj.ConstrainedToInt);
            Assert.AreEqual(obj.ScalarValue, Val);
            Assert.AreEqual(obj.DistributionValue, null);
        }