public void DivisionX(double firstValue, double expected) { var calculator = new DivisionX(); var actualResult = calculator.Calculate(firstValue); Assert.AreEqual(expected, actualResult); }
public static Flag LoadFromFile(string filename) { if (string.IsNullOrEmpty(filename)) { throw new OperationCanceledException(); } var name = string.Empty; var ratio = new Ratio(3, 2); var gridRatio = new Ratio(3, 2); string divisionType = "grid"; Color divisionColor1 = Colors.White; Color divisionColor2 = Colors.White; Color divisionColor3 = Colors.White; int divisionVal1 = 1; int divisionVal2 = 1; int divisionVal3 = 1; var overlays = new List <TempOverlay>(); var line = string.Empty; try { using (var sr = new StreamReader(filename)) { bool isDivision = false; int overlayIndex = -1; while ((line = sr.ReadLine()) != null) { switch (line.Split('=')[0].ToLower()) { case "name": name = line.Split('=')[1]; break; case "ratio": var ratioStrings = line.Split('=')[1].Split(':'); ratio = new Ratio(int.Parse(ratioStrings[1]), int.Parse(ratioStrings[0])); break; case "gridsize": var data = line.Split('=')[1].Split(':'); gridRatio = new Ratio(int.Parse(data[1]), int.Parse(data[0])); break; case "division": isDivision = true; break; case "overlay": isDivision = false; overlayIndex++; overlays.Add(new TempOverlay()); break; case "type": if (isDivision) { divisionType = line.Split('=')[1]; } else { overlays[overlayIndex].Type = line.Split('=')[1]; } break; case "color1": divisionColor1 = ParseColor(line.Split('=')[1]); break; case "color2": divisionColor2 = ParseColor(line.Split('=')[1]); break; case "color3": divisionColor3 = ParseColor(line.Split('=')[1]); break; case "color": overlays[overlayIndex].Color = ParseColor(line.Split('=')[1]); break; case "size1": if (isDivision) { divisionVal1 = int.Parse(line.Split('=')[1]); } else { overlays[overlayIndex].Values[0] = GetDoubleFromString(line.Split('=')[1]); } break; case "size2": if (isDivision) { divisionVal2 = int.Parse(line.Split('=')[1]); } else { overlays[overlayIndex].Values[1] = GetDoubleFromString(line.Split('=')[1]); } break; case "size3": if (isDivision) { divisionVal3 = int.Parse(line.Split('=')[1]); } else { overlays[overlayIndex].Values[2] = GetDoubleFromString(line.Split('=')[1]); } break; case "size4": overlays[overlayIndex].Values[3] = GetDoubleFromString(line.Split('=')[1]); break; case "size5": overlays[overlayIndex].Values[4] = GetDoubleFromString(line.Split('=')[1]); break; case "size6": overlays[overlayIndex].Values[5] = GetDoubleFromString(line.Split('=')[1]); break; case "size7": overlays[overlayIndex].Values[6] = GetDoubleFromString(line.Split('=')[1]); break; case "size8": overlays[overlayIndex].Values[7] = GetDoubleFromString(line.Split('=')[1]); break; case "path": overlays[overlayIndex].Path = line.Split('=')[1]; break; case "stroke": overlays[overlayIndex].StrokeColor = ParseColor(line.Split('=')[1]); break; } } } Division division; switch (divisionType) { case "fesses": division = new DivisionFesses(divisionColor1, divisionColor2, divisionColor3, divisionVal1, divisionVal2, divisionVal3); break; case "pales": division = new DivisionPales(divisionColor1, divisionColor2, divisionColor3, divisionVal1, divisionVal2, divisionVal3); break; case "bends forward": division = new DivisionBendsForward(divisionColor1, divisionColor2); break; case "bends backward": division = new DivisionBendsBackward(divisionColor1, divisionColor2); break; case "bends both": division = new DivisionX(divisionColor1, divisionColor2); break; default: division = new DivisionGrid(divisionColor1, divisionColor2, divisionVal1, divisionVal2); break; } return(new Flag(name, ratio, gridRatio, division, overlays.Select(o => o.ToOverlay(gridRatio.Width, gridRatio.Height, Path.GetDirectoryName(filename))))); } catch (Exception ex) { throw new FileLoadException(line, ex); } }
public void ErrorTest() { var calculator = new DivisionX(); Assert.Throws<Exception>((() => calculator.Calculate(0))); }