public void TestCompareSameScoreSameLastNameSameFirstName() { var gradeComparer = new GradeComparer(); var element1 = new Tuple<string, string, int>("BERNARD", "ARTHUR", 60); var element2 = new Tuple<string, string, int>("BERNARD", "ARTHUR", 60); Assert.IsTrue(gradeComparer.Compare(element1, element2) == 0); Assert.IsTrue(gradeComparer.Compare(element2, element1) == 0); }
public void TestCompareSameScoreDifferentLastNameDifferentFirstName() { var gradeComparer = new GradeComparer(); var element1 = new Tuple<string, string, int>("ARNOLD", "BEN", 60); var element2 = new Tuple<string, string, int>("BERNARD", "ARTHUR", 60); Assert.IsTrue(gradeComparer.Compare(element1, element2) < 0); Assert.IsTrue(gradeComparer.Compare(element2, element1) > 0); }
//show the grades based on the radio boxes input and textfields private void ShowThresholdGrades(object sender, EventArgs e) { queryResultRTBox.Clear(); bool greater = false; bool less = false; bool validDept = false, validCourseNum = false; if (courseTBox1.Text.Count() == 0) { queryResultRTBox.AppendText("Enter Course to Look For."); return; } //split the data and set it to the corresponding variable string course = courseTBox1.Text; string[] token1 = course.ToUpper().Split(' ', '-'); if (token1.Length < 2) { queryResultRTBox.AppendText("Enter Course in the Format DEPT 100"); courseTBox1.Clear(); return; } string dept = token1[0]; uint courseNumber = UInt32.Parse(token1[1]); if (dept.Length <= 4) { validDept = true; } //get the grade from the combo box string grade; if (gradeCBox1.SelectedIndex > -1) { grade = gradeCBox1.Text; } else { queryResultRTBox.AppendText("Select Grade to search for."); return; } //validate the course number to between 100 and 500 if (courseNumber >= 100 && courseNumber < 500) { validCourseNum = true; } else { queryResultRTBox.AppendText("Enter Valid Course Number between 100 and 500."); return; } //get whichever radio button is checked if (radioButton2.Checked == true) { greater = true; } if (radioButton1.Checked == true) { less = true; } //set up string comparer StringComparer gradeComparer = new GradeComparer(); if (validDept && validCourseNum) { queryResultRTBox.AppendText(String.Format("Grade Threshold Report for({0} {1})", dept, courseNumber)); queryResultRTBox.AppendText("\n----------------------------------\n"); if (greater) { //query to get get grades greater or equal to grade form drop down var gradeQuery = from c in Globals.CoursePool from g in c.Grades where dept == c.Dept && c.CourseNumber == courseNumber && gradeComparer.Compare(grade, g.Value) >= 0 select new { ID = g.Key, c.Dept, c.CourseNumber, Grade = g.Value }; if (gradeQuery.Count() > 0) { //print out results foreach (var courseGrade in gradeQuery) { queryResultRTBox.AppendText(String.Format("z{0, 7} | {1, 4}-{2, 3} | {3, -3}\n", courseGrade.ID, courseGrade.Dept, courseGrade.CourseNumber, courseGrade.Grade)); } } else if (gradeQuery.Count() == 0) { queryResultRTBox.AppendText(String.Format("No results for the Class {0} {1}", dept, courseNumber)); } } if (less) { //query to print out grades less than the grade in combo box var gradeQuery = from c in Globals.CoursePool from g in c.Grades where c.Dept == dept && c.CourseNumber == courseNumber && gradeComparer.Compare(grade, g.Value) <= 0 select new { ID = g.Key, c.Dept, c.CourseNumber, Grade = g.Value }; if (gradeQuery.Count() > 0) { //print out results foreach (var courseGrade in gradeQuery) { queryResultRTBox.AppendText(String.Format("z{0, 7} | {1, 4}-{2, 3} | {3, -3}\n", courseGrade.ID, courseGrade.Dept, courseGrade.CourseNumber, courseGrade.Grade)); } } } queryResultRTBox.AppendText("\n### END RESULTS ###"); } courseTBox1.Clear(); gradeCBox1.ResetText(); }
private void ShowPassReport(object sender, EventArgs e) { queryResultRTBox.Clear(); string grade = gradeCBox2.Text, operation = ">="; gradeCBox2.ResetText(); bool lessOrEqual = radioButton6.Checked; //check which option was clicked if (lessOrEqual) { operation = "<="; } if (grade.Count() > 0) { // set up grade comparer StringComparer gradeComparer = new GradeComparer(); queryResultRTBox.AppendText(String.Format("Pass Percentage ({0} {1}%) Report for Classes.\n", operation, grade)); queryResultRTBox.AppendText("-----------------------------------\n"); if (lessOrEqual) { //query to get the grades less than the grade from combo box var queryGrade = from c in Globals.CoursePool select new { Passed = (from g in c.Grades where gradeComparer.Compare(g.Value, grade) <= 0 && gradeComparer.Compare(g.Value, "F") > 0 select g).Count(), c.Count, c.Dept, c.CourseNumber }; //goinging in the query to get the results foreach (var passReport in queryGrade) { float passPercent = (float)passReport.Passed / (float)passReport.Count; queryResultRTBox.AppendText(String.Format("Out of {0} enrolled in {1}-{2}, {3} passed at or below this threshold ( {4: 0.00%})\n", passReport.Count, passReport.Dept, passReport.CourseNumber, passReport.Passed, passPercent)); } } else { //query to get the grade less than a the grade from combo box var queryGrade = from c in Globals.CoursePool select new { Passed = (from g in c.Grades where gradeComparer.Compare(g.Value, grade) >= 0 && gradeComparer.Compare(g.Value, "F") > 0 select g.Value).Count(), c.Count, c.Dept, c.CourseNumber }; //print out results from the query foreach (var passReport in queryGrade) { float passPercent = (float)passReport.Passed / (float)passReport.Count; queryResultRTBox.AppendText(String.Format("Out of {0} enrolled in {1}-{2}, {3} passed at or above this threshold ( {4: 0.00%})\n", passReport.Count, passReport.Dept, passReport.CourseNumber, passReport.Passed, passPercent)); } } queryResultRTBox.AppendText("\n### END RESULTS ###"); } else { queryResultRTBox.AppendText("Please select a grade to compare to."); } }