/// <summary> /// Get two dates from the user and perform the operaiton of average temperature in between /// two given dates /// </summary> /// <returns>return the operation true or not</returns> public static bool getAverageTemperature() { bool state = false; try { Console.WriteLine("starting Date : Formate Must Be in DD/MM/YYYY eg. (30/12/2018)"); string start = Convert.ToString(Console.ReadLine()); Console.WriteLine("Ending Date : Formate Must Be in DD/MM/YYYY eg. (30/12/2018)"); string end = Convert.ToString(Console.ReadLine()); double averageTempearture = TemperatureReport.findAverageInBetweenTwoDate(start, end); Console.WriteLine("Average Temparature between ({0} to {1}) :{2} degree Celcious", start, end, averageTempearture); Console.ReadKey(); askQuery(); } catch (Exception e) { Console.WriteLine(e); } return(state); }
/// <summary> /// Get date from the user and perform the operaiton of find min and max temparature /// </summary> /// <returns>return the operation true or not</returns> public static bool getMinMaxTempareture(string type) { bool status = false; try { Console.WriteLine("Enter Date : Formate must be in (MM/DD/YYYY) eg. 12/30/2018"); string date = Convert.ToString(Console.ReadLine()); if (type == "Max") { Console.WriteLine("{0} Degree Celcious", TemperatureReport.getMaximumTemperature(date)); } else { Console.WriteLine("{0} Degree Celcious", TemperatureReport.getMinimumTemperature(date)); } Console.ReadKey(); askQuery(); status = true; } catch (Exception e) { Console.WriteLine(e); } return(status); }
/// <summary> /// To store temparature details into hashtable /// </summary> /// <returns>return the operation true or not</returns> public static bool addTemperatureData() { bool status = false; try { string[] dateAndTemperature = getQueryForInsertDateWithTemperature(); if (dateAndTemperature[0] != "00/00/0000") { if (TemperatureReport.addTemperatureDataToHashTable(dateAndTemperature) == true) { askQuery(); status = true; } else { addTemperatureData(); status = false; } } else { getQueryForInsertDateWithTemperature(); } } catch (Exception dataNotStored) { Console.WriteLine(dataNotStored); } return(status); }
/// <summary> /// return the date and temperature value to store in hashtable /// </summary> /// <returns>temperature values</returns> public static string[] getQueryForInsertDateWithTemperature() { string[] dateAndTemp = new string[2]; try { // get multiple temperature values from user. Console.WriteLine("Enter a date (e.g. 10/22/1987 or 7/22/1996 - MM/DD/YYYY): "); string getDate = Convert.ToString(Console.ReadLine()); string TempeartureDate = TemperatureReport.setDateForUserTemperatureEntry(getDate); string[] splitTemperatureValue = new string[] { }; string celciousData = string.Empty; if (TempeartureDate == "00/00/0000") { askQuery(); } else { Console.WriteLine("Enter Temperature Values (Please Enter More Then One value) \nTemperature Formate : 100F or 35C like 23c,100f,36c,123F :"); string temperatureValues = Convert.ToString(Console.ReadLine()); splitTemperatureValue = temperatureValues.Split(','); celciousData = TemperatureReport.splitAndConvertToCelcious(splitTemperatureValue); } dateAndTemp[0] = TempeartureDate; dateAndTemp[1] = celciousData; } catch (ArgumentOutOfRangeException arrayException) { Console.WriteLine(arrayException); } return(dateAndTemp); }
public void checkHastTable() { TemperatureReport tr = new TemperatureReport(); TemperatureReport.setSampleTemperatureTable(); Assert.AreEqual(7, TemperatureReport.TemperatureTable.Count); Assert.AreNotEqual(8, TemperatureReport.TemperatureTable.Count); }
public void CheckCelciousConversion() { double celcious_I = TemperatureReport.convertToCelcious(120.2); double celcious_II = TemperatureReport.convertToCelcious(100.0); Assert.AreEqual(49, celcious_I); Assert.AreNotEqual(53, celcious_I); Assert.AreNotEqual(33.45, celcious_II); }
static void Main(string[] args) { try { // if you want pre defind temperature data to uncomment the below line TemperatureReport.setSampleTemperatureTable(); TemperatureProcessFlow.askQuery(); } catch (Exception cannotAccessTheClass) { Console.WriteLine(cannotAccessTheClass); } }
public void stringConvertion() { new TemperatureReport(); TemperatureReport.setSampleTemperatureTable(); int valueCount = TemperatureReport.TemperatureTable.Count; Assert.AreEqual(7, valueCount); string pareOfTemparetureValue = TemperatureReport.splitAndConvertToCelcious(new string[] { "120.2F", "20C" }); string pareOfTemparetureValue_I = TemperatureReport.splitAndConvertToCelcious(new string[] { "22c", "1200C", "120.2f" }); Assert.AreEqual("22,1200,49", pareOfTemparetureValue_I); Assert.AreNotEqual("22C,1200F,49", pareOfTemparetureValue_I); Assert.AreEqual("49,20", pareOfTemparetureValue); Assert.AreNotEqual("49F,20c", pareOfTemparetureValue); }
public void addData() { try { bool check = TemperatureReport.addTemperatureDataToHashTable(new string[] { "7/7/2018", "23c,100f" }); bool check1 = TemperatureReport.addTemperatureDataToHashTable(new string[] { "7/7/2018" }); Assert.IsTrue(check); Assert.IsFalse(check1); } catch (Exception e) { StringAssert.Contains(e.Message, "File Not Found Exception"); return; } }
public void checkMaxValue() { try { TemperatureReport tp = new TemperatureReport(); TemperatureReport.setSampleTemperatureTable(); string max = TemperatureReport.getMaximumTemperature("7/23/2018"); Assert.AreEqual("32.4", max); Assert.AreNotEqual("34.4C", max); Assert.AreNotEqual("346", max); } catch (Exception e) { StringAssert.Contains(e.Message, "File Not Found Exception"); return; } }
public void checkTheGivenDateHasBeenReturn() { string checkDateOne = TemperatureReport.setDateForUserTemperatureEntry("7/23/2018"); string checkDateTwo = TemperatureReport.setDateForUserTemperatureEntry("7/24/2018"); string invalidDate = TemperatureReport.setDateForUserTemperatureEntry("24/07/2018"); string invalidDate_I = TemperatureReport.setDateForUserTemperatureEntry("32/65/1400"); Assert.AreEqual("7/23/2018", checkDateOne); Assert.AreEqual("7/24/2018", checkDateTwo); Assert.AreEqual("00/00/0000", invalidDate); Assert.AreEqual("00/00/0000", invalidDate_I); Assert.AreNotEqual("24/07/2018", checkDateOne); Assert.AreNotEqual("23/07/2018", checkDateTwo); }
public void checkAverage() { try { TemperatureReport tp = new TemperatureReport(); TemperatureReport.setSampleTemperatureTable(); double average = TemperatureReport.findAverageInBetweenTwoDate("23/7/2018", "25/7/2018"); Assert.AreEqual(28.55, average); Assert.AreNotEqual("28.55", average); Assert.AreNotEqual(28, average); } catch (Exception e) { StringAssert.Contains(e.Message, "File Not Found Exception"); return; } }
/// <summary> /// To convert all user temperature values as celcious /// </summary> /// <returns>return celcious value set</returns> public static string splitAndConvertToCelcious(string[] splitedTemperatureValue) { string listOfTemparatureValue = string.Empty; try { double convertToCelcious = 0.0; int inputFromUser = 0; // split and convert all values as celcious foreach (string temperature in splitedTemperatureValue) { if (temperature.Contains("F") || temperature.Contains("f")) { double farenheat = Convert.ToDouble(temperature.Trim('F').Trim('f')); convertToCelcious = TemperatureReport.convertToCelcious(farenheat); if (listOfTemparatureValue == string.Empty || inputFromUser == splitedTemperatureValue.Length) { listOfTemparatureValue += convertToCelcious; } else { listOfTemparatureValue += "," + convertToCelcious; } } else { double celcious = Convert.ToDouble(temperature.Trim('C').Trim('c')); if (listOfTemparatureValue == string.Empty || inputFromUser == splitedTemperatureValue.Length) { listOfTemparatureValue += celcious; } else { listOfTemparatureValue += "," + celcious; } } inputFromUser++; } } catch (FormatException temparatureIsNotInFormate) { Console.WriteLine(temparatureIsNotInFormate); } return(listOfTemparatureValue); }
/// <summary> /// Initial state of the program it can be ask the question to user /// </summary> /// <returns>queryIndex</returns> public static int askQuery() { int query = 0; try { query = TemperatureReport.getQuery(); if (query == 1 || query == 2) { if (query == 2) { addTemperatureData(); } else if (query == 1) { Console.WriteLine("Available Date with Temarature Value"); ICollection key = TemperatureReport.TemperatureTable.Keys; foreach (string k in key) { Console.WriteLine(k + ": " + TemperatureReport.TemperatureTable[k]); } Console.WriteLine("\nIf you like to find Min temperature Press (1) "); Console.WriteLine("\nIf you like to find Min temperature Press (2) "); Console.WriteLine("\nIf you like to find Average temperature between two Date Press (3)"); int avgOrMinMax = Convert.ToInt32(Console.ReadLine()); if (avgOrMinMax == 1) { getMinMaxTempareture("Min"); } else if (avgOrMinMax == 2) { getMinMaxTempareture("Max"); } else if (avgOrMinMax == 3) { getAverageTemperature(); } else { Console.WriteLine("Wrong Input"); } } else { Console.WriteLine("Wrong Input"); } } else { Console.WriteLine("Wrong Input"); } Console.ReadKey(); askQuery(); } catch (Exception queryException) { Console.WriteLine(queryException); } return(query); }