public void GetChartPoints_IfOnlySlavePeakExtremumWithShortShadow_PointsFromShadowTopToHighestAdjacentShadow() { //Arrange DataSet ds5 = utf.getDataSet(5); Price price5 = utf.getPrice(ds5); Quotation quotation5 = new Quotation(ds5) { Id = 5, Open = 1.09193, High = 1.09209, Low = 1.09165, Close = 1.09207, Volume = 1819 }; Extremum slave = new Extremum(price5, ExtremumType.PeakByHigh); ExtremumGroup extremumGroup = new ExtremumGroup(null, slave); Mock <IProcessManager> mockManager = new Mock <IProcessManager>(); mockManager.Setup(m => m.GetDataSet(5)).Returns(ds5); //Act TrendlineProcessor processor = new TrendlineProcessor(mockManager.Object); processor.MinDistanceBetweenChartPoints = 1; //Assert processor.MaxChartPointsForExtremumGroup = 6; processor.MinDistanceBetweenChartPoints = 0.0001; var result = processor.GetChartPoints(extremumGroup); var expectedResult = new List <ChartPoint>(); expectedResult.Add(new ChartPoint(slave.GetIndexNumber(), 1.09207)); expectedResult.Add(new ChartPoint(slave.GetIndexNumber(), 1.09209)); var isEqual = expectedResult.HasEqualItems(result); Assert.IsTrue(isEqual); }
public void GetChartPoints_IfBothPeakExtremaAndSlaveLater_PointsAreProperlyGenerated() { //Arrange DataSet ds5 = utf.getDataSet(5); Price price5 = utf.getPrice(ds5); Quotation quotation5 = new Quotation(ds5) { Id = 5, Open = 1.09127, High = 1.09235, Low = 1.09095, Close = 1.09207, Volume = 1519 }; Extremum master = new Extremum(price5, ExtremumType.PeakByClose); DataSet ds6 = utf.getDataSet(6); Price price6 = utf.getPrice(ds6); Quotation quotation6 = new Quotation(ds6) { Id = 6, Open = 1.09207, High = 1.09307, Low = 1.08947, Close = 1.09067, Volume = 1819 }; Extremum slave = new Extremum(price6, ExtremumType.PeakByHigh); ExtremumGroup extremumGroup = new ExtremumGroup(master, slave); Mock <IProcessManager> mockManager = new Mock <IProcessManager>(); mockManager.Setup(m => m.GetDataSet(5)).Returns(ds5); mockManager.Setup(m => m.GetDataSet(6)).Returns(ds6); //Act TrendlineProcessor processor = new TrendlineProcessor(mockManager.Object); //Assert processor.MaxChartPointsForExtremumGroup = 6; processor.MinDistanceBetweenChartPoints = 0.0001; var result = processor.GetChartPoints(extremumGroup); var expectedResult = new List <ChartPoint>(); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09207)); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09227)); expectedResult.Add(new ChartPoint(slave.GetIndexNumber(), 1.09247)); expectedResult.Add(new ChartPoint(slave.GetIndexNumber(), 1.09267)); expectedResult.Add(new ChartPoint(slave.GetIndexNumber(), 1.09287)); expectedResult.Add(new ChartPoint(slave.GetIndexNumber(), 1.09307)); var isEqual = expectedResult.HasEqualItems(result); Assert.IsTrue(isEqual); }
public void GetChartPoints_IfOnlyMasterPeakExtremumWithLongShadow_OnlyLimitedNumberOfPointsIsCreated() { //Arrange DataSet ds5 = utf.getDataSet(5); Price basePrice = utf.getPrice(ds5); Extremum master = new Extremum(basePrice, ExtremumType.PeakByClose); Quotation quotation5 = new Quotation(ds5) { Id = 5, Open = 1.09193, High = 1.09307, Low = 1.09165, Close = 1.09207, Volume = 1819 }; ExtremumGroup extremumGroup = new ExtremumGroup(master, null); Mock <IProcessManager> mockManager = new Mock <IProcessManager>(); mockManager.Setup(m => m.GetDataSet(5)).Returns(ds5); //Act TrendlineProcessor processor = new TrendlineProcessor(mockManager.Object); //Assert processor.MaxChartPointsForExtremumGroup = 6; processor.MinDistanceBetweenChartPoints = 0.0001; var result = processor.GetChartPoints(extremumGroup); var expectedResult = new List <ChartPoint>(); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09207)); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09227)); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09247)); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09267)); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09287)); expectedResult.Add(new ChartPoint(master.GetIndexNumber(), 1.09307)); var isEqual = expectedResult.HasEqualItems(result); Assert.IsTrue(isEqual); }