private DistributionRecord GetDistribution(IDataReader reader) { var record = new DistributionRecord(); record.Id = (int)reader["DistributionId"]; record.Minimum = (double)reader["Minimum"]; record.Worst = (double)reader["Worst"]; record.Likely = (double)reader["Likely"]; record.Best = (double)reader["Best"]; record.Maximum = (double)reader["Maximum"]; return(record); }
public void DistributionOnSuccessReturnsCorrectCalculations() { //arrange int id = 1; double xMin = 50; double xBad = 85; double xLikely = 105; double xGood = 125; double xMax = 150; var uniformRandom1 = 3.65182845504721; var uniformRandom2 = 12.1312092438079; var uniformRandom3 = 66.673560619284; var uniformRandom4 = 94.5083821398705; var context = new DistributionRecord(); context.Id = id; context.Minimum = xMin; context.Worst = xBad; context.Likely = xLikely; context.Best = xGood; context.Maximum = xMax; //act var distribution = new Distribution(context); var price1 = distribution.GetPrice(uniformRandom1, 0); var price2 = distribution.GetPrice(uniformRandom2, 1); var price3 = distribution.GetPrice(uniformRandom3, 2); var price4 = distribution.GetPrice(uniformRandom4, 3); //assert Assert.AreEqual(.57, distribution.HeightWorst, .01); Assert.AreEqual(.8, distribution.HeightBest, .01); Assert.AreEqual(3.31, distribution.HeightLikely, .01); Assert.AreEqual(104.97, distribution.Mean, .01); Assert.AreEqual(16.2, distribution.Stdev, .01); Assert.AreEqual(-.277, distribution.Skew, .01); Assert.AreEqual(.537, distribution.Kurt, .01); Assert.AreEqual(10, distribution.CdfProbabilities[0], .01); Assert.AreEqual(48.86, distribution.CdfProbabilities[1], .01); Assert.AreEqual(90, distribution.CdfProbabilities[2], .01); Assert.AreEqual(100, distribution.CdfProbabilities[3], .01); Assert.AreEqual(71.15062613, price1, .01); Assert.AreEqual(87.7933079, price2, .01); Assert.AreEqual(111.0757505, price3, .01); Assert.AreEqual(131.4736373, price4, .01); }
public void MapNodeRecordsToNodesOnSuccessMapsProperties() { //arrange var distributionId = 5; var distributionRecord = new DistributionRecord { Id = distributionId }; var distributionRecords = new List <DistributionRecord> { distributionRecord }; var nodeRecord1 = new NodeRecord { Id = 1, Name = "name", Url = "url", NetworkName = "networkname", NetworkUrl = "networkurl", InitialPrice = 2, InitialInvestment = 3, IsPortfolioComponent = true, Distributions = distributionRecords }; var nodeRecord2 = new NodeRecord { Id = 2, Parent = nodeRecord1 }; var records = new SortedDictionary <int, NodeRecord> { { nodeRecord1.Id, nodeRecord1 }, { nodeRecord2.Id, nodeRecord2 } }; Func <INode> nodeFactory = () => { var node = new Mock <INode>(); node.SetupAllProperties(); return(node.Object); }; Func <DistributionRecord, IDistribution> distributionFactory = (r) => { var distribution = new Mock <IDistribution>(); distribution.Setup(d => d.Id).Returns(r.Id); return(distribution.Object); }; var mapper = new NodeMapper(nodeFactory, distributionFactory, null, null); //act var result = mapper.MapNodeRecordsToNodes(records); //assert Assert.AreEqual(nodeRecord1.Id, result[1].Id); Assert.AreEqual(nodeRecord1.Name, result[1].Name); Assert.AreEqual(nodeRecord1.Url, result[1].Url); Assert.AreEqual(nodeRecord1.NetworkName, result[1].NetworkName); Assert.AreEqual(nodeRecord1.NetworkUrl, result[1].NetworkUrl); Assert.AreEqual(nodeRecord1.InitialPrice, result[1].InitialPrice); Assert.AreEqual(nodeRecord1.InitialInvestment, result[1].InitialInvestment); Assert.IsTrue(nodeRecord1.IsPortfolioComponent); Assert.AreEqual(distributionId, result[1].Distributions[0].Id); Assert.AreEqual(nodeRecord1.Id, result[2].Parent.Id); Assert.AreEqual(nodeRecord1.Id, result.Values.First().Id); Assert.AreEqual(nodeRecord2.Id, result.Values.Last().Id); }