public void BindToFunctionWithNaNValuesWithDateTimeArgument() { //setup a 2D function and fix one dimension IFunction function = new Function(); function.Arguments.Add(new Variable <DateTime>("x")); function.Components.Add(new Variable <double>("y")); function[new DateTime(2000, 1, 1)] = 2.0; function[new DateTime(2001, 1, 1)] = 3.0; function[new DateTime(2002, 1, 1)] = double.NaN; function[new DateTime(2003, 1, 1)] = 4.0; ILineChartSeries lineChartSeries = ChartSeriesFactory.CreateLineSeries(); var component = function.Components[0]; var variable = function.Arguments[0]; lineChartSeries.XValuesDataMember = variable.DisplayName; lineChartSeries.YValuesDataMember = component.DisplayName; var functionBindingList = new FunctionBindingList(function); lineChartSeries.DataSource = functionBindingList; Assert.AreEqual(4, lineChartSeries.XValues.Count); Assert.AreEqual(4, lineChartSeries.YValues.Count); var chartView1 = new ChartView(); chartView1.Chart.Series.Add(lineChartSeries); WindowsFormsTestHelper.ShowModal(chartView1); }
public void ClearFunctionThatIsBoundToDecorator() { IFunction function = new Function("time series"); function.Arguments.Add(new Variable <DateTime>("time")); function.Components.Add(new Variable <double>("water_discharge")); // set initial values DateTime time1 = DateTime.Now; DateTime time2 = time1.AddMinutes(1); DateTime time3 = time2.AddMinutes(1); function[time1] = 0.0; function[time2] = 1.0; function[time3] = 2.0; ILineChartSeries lineChartSeries = ChartSeriesFactory.CreateLineSeries(); lineChartSeries.XValuesDataMember = function.Arguments[0].DisplayName; lineChartSeries.YValuesDataMember = function.Components[0].DisplayName; var control = new Control(); WindowsFormsTestHelper.Show(control); var functionBindingList = new FunctionBindingList(function) { SynchronizeInvoke = control }; lineChartSeries.DataSource = functionBindingList; function.Clear(); }
public void Show() { IFunction function1 = GetFunction1Arg1Comp(); IFunction function2 = GetFunction1Arg1Comp(); IFunction function3 = GetFunction1Arg1Comp(); function1[1.0] = 2.0; function1[2.0] = 5.0; function1[3.0] = 1.0; function2[1.0] = 20.0; function2[2.0] = 50.0; function2[3.0] = 10.0; function3[3.0] = 20; function3[4.0] = 50; var view = new ChartView(); ILineChartSeries lineSeries1 = GetLineSeries(function1, view); ILineChartSeries lineSeries2 = GetLineSeries(function2, view); ILineChartSeries lineSeries3 = GetLineSeries(function3, view); view.Chart.Series.Add(lineSeries1); view.Chart.Series.Add(lineSeries2); view.Chart.Series.Add(lineSeries3); var tool = view.NewSeriesBandTool(lineSeries1, lineSeries2, Color.Green); WindowsFormsTestHelper.ShowModal(view); }
public void SeriesChangesWhenFunctionBindingListChanges() { IFunction function = new Function(); IVariable yVariable = new Variable <double>("y"); IVariable xVariable = new Variable <double>("x"); function.Arguments.Add(xVariable); function.Components.Add(yVariable); function[1.0] = 2.0; function[2.0] = 5.0; function[3.0] = 1.0; ILineChartSeries ls = ChartSeriesFactory.CreateLineSeries(); ls.YValuesDataMember = function.Components[0].DisplayName; ls.XValuesDataMember = function.Arguments[0].DisplayName; var synchronizeObject = new Control(); synchronizeObject.Show(); var functionBindingList = new FunctionBindingList(function) { SynchronizeInvoke = synchronizeObject }; ls.DataSource = functionBindingList; //a change in the function should change the series function[1.0] = 20.0; //wait for the series to get refreshed Assert.AreEqual(20, ls.YValues[0]); }
private static ILineChartSeries GetLineSeries(IFunction function, ChartView view) { ILineChartSeries ls = ChartSeriesFactory.CreateLineSeries(); ls.YValuesDataMember = function.Components[0].DisplayName; ls.XValuesDataMember = function.Arguments[0].DisplayName; var functionBindingList = new FunctionBindingList(function) { SynchronizeInvoke = view }; ls.DataSource = functionBindingList; return(ls); }
public void AreaSeriesView() { ChartView chartView = new ChartView(); ILineChartSeries series = ChartSeriesFactory.CreateLineSeries(); series.DataSource = InitTable(); series.XValuesDataMember = "Y"; series.YValuesDataMember = "Z"; chartView.Chart.Series.Add(series); WindowsFormsTestHelper windowsFormsTestHelper = new WindowsFormsTestHelper(); windowsFormsTestHelper.ShowControlModal(chartView); }
private static IChart CreateMultipleSeriesChart() { IChart chart = new Chart(); var dataTable = new DataTable("sinandcosinus"); dataTable.Columns.Add("X", typeof(double)); dataTable.Columns.Add("sin", typeof(double)); dataTable.Columns.Add("cos", typeof(double)); const double pi2 = Math.PI * 2; for (int i = 0; i < 100; i++) { double angle = i * (pi2 / 100); DataRow row = dataTable.NewRow(); row["X"] = angle; row["sin"] = Math.Sin(angle); row["cos"] = Math.Cos(angle); dataTable.Rows.Add(row); } ILineChartSeries sin = ChartSeriesFactory.CreateLineSeries(); sin.Title = "sinus"; sin.DataSource = dataTable; sin.XValuesDataMember = "X"; sin.YValuesDataMember = "sin"; chart.Series.Add(sin); sin.BrushColor = Color.Red; sin.PointerVisible = false; ILineChartSeries cos = ChartSeriesFactory.CreateLineSeries(); cos.Title = "cosinus"; cos.DataSource = dataTable; cos.XValuesDataMember = "X"; cos.YValuesDataMember = "cos"; chart.Series.Add(cos); cos.BrushColor = Color.Blue; cos.PointerVisible = false; chart.Legend.Visible = true; return(chart); }
public void ChartWithFunctionAsSeriesSource() { // create function var fn = new Function(); var x = new Variable <double>("x"); var y = new Variable <double>("y"); fn.Arguments.Add(x); fn.Components.Add(y); fn[2.5] = 33.3; fn[0.5] = 13.3; fn[1.5] = 4.0; var chartView1 = new ChartView();// { Data = chart }; // create chart and add function as a data source using object adapter class FunctionSeriesDataSource // var chart = new Chart(); ILineChartSeries series = ChartSeriesFactory.CreateLineSeries(); series.DataSource = new FunctionBindingList(fn) { SynchronizeInvoke = chartView1 }; series.XValuesDataMember = x.DisplayName; series.YValuesDataMember = y.DisplayName; //chart.Series.Add(series); // TODO: add asserts // TODO: make all windows forms public from WindowsFormsTest which shows and hides forms on build server // show form chartView1.Chart.Series.Add(series); // set colors afterwards. TChart changes colors when adding a series to ChartView series.LinePenColor = Color.Black; //var form = new Form {Width = 600, Height = 100}; //form.Controls.Add(chartView1); WindowsFormsTestHelper.ShowModal(chartView1); }
public void BindToFilteredFuntion() { //setup a 2D function and fix one dimension IFunction function = new Function(); IVariable <int> x = new Variable <int>(); function.Arguments.Add(x); function.Arguments.Add(new Variable <int>("Y")); function.Components.Add(new Variable <int>()); function[0, 0] = 2; function[0, 1] = 3; function[1, 0] = 1; function[1, 1] = 4; IFunction filteredFunction = function.Filter(new VariableValueFilter <int>(x, 0)); ILineChartSeries lineChartSeries = ChartSeriesFactory.CreateLineSeries(); var variable = filteredFunction.Arguments[1]; var component = filteredFunction.Components[0]; lineChartSeries.XValuesDataMember = variable.DisplayName; lineChartSeries.YValuesDataMember = component.DisplayName; var functionBindingList = new FunctionBindingList(filteredFunction); lineChartSeries.DataSource = functionBindingList; while (functionBindingList.IsProcessing) { Application.DoEvents(); } Assert.AreEqual(2, lineChartSeries.XValues.Count); Assert.AreEqual(2, lineChartSeries.YValues.Count); Assert.AreEqual(0.0, lineChartSeries.XValues[0]); Assert.AreEqual(1.0, lineChartSeries.XValues[1]); Assert.AreEqual(2.0, lineChartSeries.YValues[0]); Assert.AreEqual(3.0, lineChartSeries.YValues[1]); }
public void HidingPointWithZeroY() { double?[] X = new double?[] { 0.0, 1.0, 3.0, 4.0, 5.0, 7.0, 8.0 }; double?[] Y = new double?[] { 0.0, 1.0, 0.5, 0.0, 5.0, 3.0, 4.0 }; IChartView view = new ChartView(); ILineChartSeries series = ChartSeriesFactory.CreateLineSeries(); series.NoDataValues.Add(1.0); series.Add(X, Y); view.Chart.Series.Add(series); //CustomPoint customPoint = ((TeeChartSeriesDecorator)((LineSeries) series).decorator).series; //customPoint.DefaultNullValue = 3.0; //customPoint.YValues[0] = 89; //customPoint.SetNull(0); ////customPoint.SetNull(3); ////customPoint.YValues[3] = 0; //customPoint.TreatNulls = TreatNullsStyle.DoNotPaint; WindowsFormsTestHelper.ShowModal((UserControl)view); }
public void TestOneSeriePlot() { IWorkbook wb = new XSSFWorkbook(); ISheet sheet = new SheetBuilder(wb, plotData).Build(); IDrawing Drawing = sheet.CreateDrawingPatriarch(); IClientAnchor anchor = Drawing.CreateAnchor(0, 0, 0, 0, 1, 1, 10, 30); IChart chart = Drawing.CreateChart(anchor); IChartAxis bottomAxis = chart.ChartAxisFactory.CreateCategoryAxis(AxisPosition.Bottom); IChartAxis leftAxis = chart.ChartAxisFactory.CreateValueAxis(AxisPosition.Left); ILineChartData <string, double> lineChartData = chart.ChartDataFactory.CreateLineChartData <string, double>(); IChartDataSource <String> xs = DataSources.FromStringCellRange(sheet, CellRangeAddress.ValueOf("A1:J1")); IChartDataSource <double> ys = DataSources.FromNumericCellRange(sheet, CellRangeAddress.ValueOf("A2:J2")); ILineChartSeries <string, double> series = lineChartData.AddSeries(xs, ys); Assert.IsNotNull(series); Assert.AreEqual(1, lineChartData.GetSeries().Count); Assert.IsTrue(lineChartData.GetSeries().Contains(series)); chart.Plot(lineChartData, bottomAxis, leftAxis); }
public void ThrowExceptionOnSettingInvalidDataSource() { ILineChartSeries lineChartSeries = ChartSeriesFactory.CreateLineSeries(); lineChartSeries.DataSource = Enumerable.Range(1, 3); }