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); }
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); }
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); }
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); }
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); } }
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]); } }
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()); }
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()); }
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); }