/// <summary> /// Creates a table with place holders for each series and statisitcal method as a column /// </summary> /// <param name="list"></param> /// <param name="sm"></param> /// <returns></returns> private static DataTable CreateMonthlySummaryTable(SeriesList list, StatisticalMethods sm, bool multiYear) { DateTime t1 = list.MinDateTime; DateTime t2 = list.MaxDateTime; m_minColumnIndex.Clear(); m_maxColumnIndex.Clear(); m_meanColumnIndex.Clear(); m_sumColumnIndex.Clear(); m_countColumnIndex.Clear(); m_medianColumnIndex.Clear(); DataTable tbl = new DataTable("Summary"); tbl.Columns.Add("DateTime", typeof(DateTime)); var textHelp = new SeriesListText(list); for (int i = 0; i < list.Count; i++) { // string s = list[i].Appearance.LegendText; var s = textHelp.Text[i]; if ((sm & StatisticalMethods.Min) == StatisticalMethods.Min) { tbl.Columns.Add("Min " + s, typeof(double)); m_minColumnIndex.Add(tbl.Columns.Count - 1); } if ((sm & StatisticalMethods.Max) == StatisticalMethods.Max) { tbl.Columns.Add("Max " + s, typeof(double)); m_maxColumnIndex.Add(tbl.Columns.Count - 1); } if ((sm & StatisticalMethods.Mean) == StatisticalMethods.Mean) { tbl.Columns.Add("Mean " + s, typeof(double)); m_meanColumnIndex.Add(tbl.Columns.Count - 1); } if ((sm & StatisticalMethods.Sum) == StatisticalMethods.Sum) { tbl.Columns.Add("Sum " + s, typeof(double)); m_sumColumnIndex.Add(tbl.Columns.Count - 1); } if ((sm & StatisticalMethods.Count) == StatisticalMethods.Count) { tbl.Columns.Add("Count " + s, typeof(int)); m_countColumnIndex.Add(tbl.Columns.Count - 1); } if ((sm & StatisticalMethods.Median) == StatisticalMethods.Median) { tbl.Columns.Add("Median " + s, typeof(double)); m_medianColumnIndex.Add(tbl.Columns.Count - 1); } } InsertDates(t1, t2, tbl, multiYear); return(tbl); }
/// <summary> /// /// </summary> /// <param name="s">input series</param> /// <param name="sm">statisitical method</param> /// <param name="multiYear">when false returns series with 12 values</param> /// <returns></returns> public static Series MonthlySeries(Series s, StatisticalMethods sm, bool multiYear) { SeriesList lst = new SeriesList(); lst.Add(s); DataTable tbl = MonthlySummary(lst, sm, multiYear); return(CreateSeries(lst, tbl, 0, 1)); }
//public static Series MonthlySeries(Series daily, StatisticalMethods sm) //{ // SeriesList lst = new SeriesList(); // lst.Add(daily); // DataTable tbl = MonthlySummary(lst, sm); // return CreateSeries(lst, tbl, 0, 1); //} /// <summary> /// Compute monthly statisitcs /// </summary> static DataTable MonthlySummary(SeriesList list, StatisticalMethods sm, bool multiYear) { DataTable tbl = CreateMonthlySummaryTable(list, sm, multiYear); for (int i = 0; i < tbl.Rows.Count; i++) { DateTime t = Convert.ToDateTime(tbl.Rows[i][0]); DateRange dr = new DateRange( new DateTime(t.Year, t.Month, 1), new DateTime(t.Year, t.Month, DateTime.DaysInMonth(t.Year, t.Month), 23, 59, 59)); int[] months = new int[] { t.Month }; for (int j = 0; j < list.Count; j++) { Series subset; if (multiYear) { subset = Math.Subset(list[j], dr); } else { subset = Math.Subset(list[j], months); } if ((sm & StatisticalMethods.Min) == StatisticalMethods.Min) { tbl.Rows[i][m_minColumnIndex[j]] = Math.MinPoint(subset).Value; } if ((sm & StatisticalMethods.Max) == StatisticalMethods.Max) { tbl.Rows[i][m_maxColumnIndex[j]] = Math.MaxPoint(subset).Value; } if ((sm & StatisticalMethods.Mean) == StatisticalMethods.Mean) { tbl.Rows[i][m_meanColumnIndex[j]] = Math.AverageOfSeries(subset); } if ((sm & StatisticalMethods.Count) == StatisticalMethods.Count) { tbl.Rows[i][m_countColumnIndex[j]] = Math.Count(subset); } if ((sm & StatisticalMethods.Sum) == StatisticalMethods.Sum) { tbl.Rows[i][m_sumColumnIndex[j]] = Math.Sum(subset); } } } return(tbl); }
public SeriesList AggregateAndSubset(StatisticalMethods aggregateType, MonthDayRange monthDayRange, int beginningMonth) { SeriesList rval = new SeriesList(); foreach (Series s in this) { rval.Add(TimeSeries.Math.AggregateAndSubset(aggregateType, s, monthDayRange, beginningMonth)); } return(rval); }
/// <summary> /// The entry point of the program. /// </summary> private static void Main() { Student ivan = new Student(); ivan.FirstName = "Ivan"; ivan.LastName = "Ivanov"; ivan.DateOfBirth = new DateTime(1992, 03, 17); Student ivanka = new Student(); ivanka.FirstName = "Ivanka"; ivanka.LastName = "Ivanova"; ivanka.DateOfBirth = new DateTime(1993, 11, 3); Student asd = new Student(); Console.WriteLine( "Is {0} older than {1}? -> {2}", ivan.FirstName, ivanka.FirstName, ivan.DateOfBirth.IsEarlierThan(ivanka.DateOfBirth)); Console.WriteLine(GeometryMethods.CalcTriangleArea(3, 4, 5)); Console.WriteLine(LanguageMethods.DigitToText(5)); Console.WriteLine(StatisticalMethods.Max(5, -1, 3, 2, 14, 2, 3)); ConsolePrinter.PrintNumber(1.3, 2); ConsolePrinter.PrintPercent(0.75, 0); ConsolePrinter.PrintAligned(2.30, 8); Console.WriteLine(GeometryMethods.CalcDistance(3, -1, 3, 2.5)); Console.WriteLine("Horizontal? -> " + GeometryMethods.IsLineHorizontal(3, -1, 3, 2.5)); Console.WriteLine("Vertical? -> " + GeometryMethods.IsLineVertical(3, -1, 3, 2.5)); }
public void TestSum3() { int sum = StatisticalMethods.Sum(-98); Assert.AreEqual(-98, sum); }
public void TestMin4() { int min = StatisticalMethods.Min(7, 6, 0, 9); Assert.AreEqual(0, min); }
public void TestAverage2() { double average = StatisticalMethods.Average(); Assert.Fail(); }
public void TestAverage3() { double average = StatisticalMethods.Average(34); Assert.AreEqual(34, average); }
public void TestMax3() { int min = StatisticalMethods.Max(23452); Assert.AreEqual(23452, min); }
public void TestMax4() { int max = StatisticalMethods.Max(7, 6, 0, 9); Assert.AreEqual(9, max); }
public void TestSum4() { int sum = StatisticalMethods.Sum(7, 6, 0, 9); Assert.AreEqual(22, sum); }
public void TestSum2() { int sum = StatisticalMethods.Sum(); Assert.Fail(); }
public void TestProduct2() { int product = StatisticalMethods.Product(); Assert.Fail(); }
public void TestMin3() { int min = StatisticalMethods.Min(-902); Assert.AreEqual(-902, min); }
public void TestMin2() { int min = StatisticalMethods.Min(); Assert.Fail(); }
public void TestProduct4() { int product = StatisticalMethods.Product(7, 6, 1, 9); Assert.AreEqual(378, product); }
public void TestProduct3() { int product = StatisticalMethods.Product(-42); Assert.AreEqual(-42, product); }
public void TestMax1() { int min = StatisticalMethods.Max(null); Assert.Fail(); }
public void TestMax2() { int max = StatisticalMethods.Max(); Assert.Fail(); }
private static SeriesList CreateSummaryList(SeriesList list, DataTable summaryTable, StatisticalMethods sm) { var summaryList = new SeriesList(); int tableIndex = 1; for (int seriesIndex = 0; seriesIndex < list.Count; seriesIndex++) { if ((sm & StatisticalMethods.Min) == StatisticalMethods.Min) { summaryList.Add(CreateSeries(list, summaryTable, seriesIndex, tableIndex++)); } if ((sm & StatisticalMethods.Max) == StatisticalMethods.Max) { summaryList.Add(CreateSeries(list, summaryTable, seriesIndex, tableIndex++)); } if ((sm & StatisticalMethods.Mean) == StatisticalMethods.Mean) { summaryList.Add(CreateSeries(list, summaryTable, seriesIndex, tableIndex++)); } if ((sm & StatisticalMethods.Count) == StatisticalMethods.Count) { summaryList.Add(CreateSeries(list, summaryTable, seriesIndex, tableIndex++)); } if ((sm & StatisticalMethods.Sum) == StatisticalMethods.Sum) { summaryList.Add(CreateSeries(list, summaryTable, seriesIndex, tableIndex++)); } if ((sm & StatisticalMethods.Median) == StatisticalMethods.Median) { summaryList.Add(CreateSeries(list, summaryTable, seriesIndex, tableIndex++)); } } return(summaryList); }
public void TestAverage4() { double average = StatisticalMethods.Average(7, 6, 0, 9); Assert.AreEqual(5.5, average); }