public void TemperatureToArbitralFeelingDescription(TemperatureEnum temperatureC, string expected) { var model = new WeatherQueryResult { TemperatureC = (double)temperatureC }; var creator = new WeatherDescriptionCreator(model); var actual = creator .BuildTemperatureDescription(); Assert.Equal(actual.WeatherDescription, expected); }
//// execute //private static bool DoExecute(string[] lineArray, int lineNumber) //{ // bool valid = true; // if (lineArray.Length != 1) // { // System.Console.WriteLine("Invalid EXECUTE format at line " + lineNumber); // valid = false; // } // else // { // } // return valid; //} private static bool DoModifyTemperature(string[] lineArray, int lineNumber) { bool valid = true; int oldTempIndex = 2; int byIndex = 3; int modTypeIndex = 4; int modValueIndex = 5; int sideIndex = -1; TemperatureEnum tempType = TemperatureEnum.ALL; // check parameter count if (lineArray.Length < 6 || lineArray.Length > 7) { System.Console.WriteLine("Invalid MODIFY TEMPERATURE at line " + lineNumber); valid = false; } // LEFT/RIGHT/MID specified else if (lineArray.Length == 7) { sideIndex = 2; oldTempIndex = 3; byIndex = 4; modTypeIndex = 5; modValueIndex = 6; } if (valid && sideIndex > 0) { valid = Enum.TryParse(lineArray[sideIndex], out tempType); if (!valid) { System.Console.WriteLine("Invalid MODIFY TEMPERATURE side setting at line " + lineNumber); } } if (valid) { String oldTemperature = lineArray[oldTempIndex]; String byStr = lineArray[byIndex].ToUpper(); String modType = lineArray[modTypeIndex].ToUpper(); String modValueStr = lineArray[modValueIndex]; int modValue; TemperatureModifier tempMod = new TemperatureModifier(); // process OldTemperature if (!int.TryParse(oldTemperature, out tempMod.oldValue)) { System.Console.WriteLine("Nonnumeric MODIFY TEMPERATURE old value at line " + lineNumber); valid = false; } if (!int.TryParse(modValueStr, out modValue)) { System.Console.WriteLine("Invalid MODIFY TEMPERATURE modification value at line " + lineNumber); valid = false; } // process BY string if (valid && !byStr.Equals("BY")) { System.Console.WriteLine("Invalid MODIFY TEMPERATURE at line " + lineNumber); valid = false; } // process modtype string if (valid) { if (modType.Equals("PERCENTAGE")) { double percentage = modValue; tempMod.newValue = Convert.ToInt32(tempMod.oldValue + (percentage / 100) * tempMod.oldValue); } else if (modType.Equals("ADD")) { tempMod.newValue = tempMod.oldValue + modValue; } else if (modType.Equals("REPLACE")) { tempMod.newValue = modValue; } else { System.Console.WriteLine("Invalid MODIFY TEMPERATURE modificaiton setting at line " + lineNumber); valid = false; } } if (valid) { TemperatureModifier leftMod = null; TemperatureModifier rightMod = null; TemperatureModifier midMod = null; switch (tempType) { case TemperatureEnum.ALL: leftMod = new TemperatureModifier(); rightMod = new TemperatureModifier(); midMod = new TemperatureModifier(); break; case TemperatureEnum.LEFT: leftMod = new TemperatureModifier(); break; case TemperatureEnum.RIGHT: rightMod = new TemperatureModifier(); break; case TemperatureEnum.MID: midMod = new TemperatureModifier(); break; } if (leftMod != null) { leftMod.extruder = BFBConstants.LEFT_TEMP; leftMod.oldValue = tempMod.oldValue; leftMod.newValue = tempMod.newValue; temperatureModifers.Add(leftMod); } if (rightMod != null) { rightMod.extruder = BFBConstants.RIGHT_TEMP; rightMod.oldValue = tempMod.oldValue; rightMod.newValue = tempMod.newValue; temperatureModifers.Add(rightMod); } if (midMod != null) { midMod.extruder = BFBConstants.MID_TEMP; midMod.oldValue = tempMod.oldValue; midMod.newValue = tempMod.newValue; temperatureModifers.Add(midMod); } } } return(valid); }