private void FormatGrid() { foreach (DataGridViewRow row in gridView.Rows) { if (row.IsNewRow) { continue; } bool Valid = (bool)row.Cells["IsValidTriangle"].Value; Color defaultBackColor = row.DefaultCellStyle.BackColor; Color defaultForeColor = row.DefaultCellStyle.ForeColor; row.DefaultCellStyle.BackColor = (Valid) ? defaultBackColor : Color.Yellow; TriangleTypeEnum expected = (row.Cells["ExpectedType"].Value == null) ? TriangleTypeEnum.NONE : (TriangleTypeEnum)row.Cells["ExpectedType"].Value; TriangleTypeEnum resultType = (row.Cells["ResultType"].Value == null) ? TriangleTypeEnum.NONE : (TriangleTypeEnum)row.Cells["ResultType"].Value; if (expected != resultType) { row.DefaultCellStyle.ForeColor = Color.Red; row.Cells["Result Notes"].Value += " Types do not match."; } } }
public void Load(string fileName) { try { Clear(); List <string[]> tokenCollection = new List <string[]>(); using (StreamReader reader = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.Read))) { string line = string.Empty; while (!reader.EndOfStream) { line = reader.ReadLine(); string[] tokens = line.Split(",".ToCharArray()); if (VerifyTokens(tokens)) { tokenCollection.Add(tokens); } } reader.Close(); } int id = 0; foreach (string[] tokens in tokenCollection) { TriangleTypeEnum tempTriangleType = TriangleTypeEnum.NONE; Enum.TryParse(tokens[3].ToUpper(), out tempTriangleType); TriangleTest test = new TriangleTest(id++, ulong.Parse(tokens[0]), ulong.Parse(tokens[1]), ulong.Parse(tokens[2]), tempTriangleType); Add(test); } } catch (IOException ex) { throw new IOException(string.Format("Unable to acccess {0}.{1}Reason: {2}", fileName, Environment.NewLine, ex.Message)); } catch (Exception ex) { throw ex; } }
private bool VerifyTokens(string[] tokens) { if (tokens == null || tokens.Length != 4) { return(false); } ulong temp = 0; if (!ulong.TryParse(tokens[0], out temp) || !ulong.TryParse(tokens[1], out temp) || !ulong.TryParse(tokens[2], out temp)) { return(false); } TriangleTypeEnum tempTriangleType = TriangleTypeEnum.NONE; if (!Enum.TryParse(tokens[3].ToUpper(), out tempTriangleType)) { return(false); } return(true); }
private TriangleTypeEnum GetTriangleType() { //Since we cannot be sure that someone will code this triangle object //in the future we should do a sanity check of the data if (!this.IsValidTriangle) { return(TriangleTypeEnum.NONE); } //Sort sides before doing comparison //This will allow for a quick evaluation of the triangle by ensuring //that we can use a state loop. If ther are any sides.Sort(); //Assume that triangle is an equilateral triangle from the start TriangleTypeEnum currentType = TriangleTypeEnum.EQUILATERAL; ulong currentside = sides[0]; //Start with first side for (int i = 1; i < sides.Count; i++) //Start Loop on second side { if (sides[i] != currentside) //Compare side { switch (currentType) { case TriangleTypeEnum.EQUILATERAL: currentType = TriangleTypeEnum.ISOSCELES; break; case TriangleTypeEnum.ISOSCELES: currentType = TriangleTypeEnum.SCALENE; break; } currentside = sides[i]; } } return(currentType); }
public TriangleTest(int testID, ulong sideA, ulong sideB, ulong sideC, TriangleTypeEnum expectedType) { TestID = testID; TestTriangle = new Triangle(sideA, sideB, sideC); ExpectedTriangleType = expectedType; }