Пример #1
0
        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.";
                }
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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;
 }