public void Test_RegisterForCourse_StudentIsProfessor() { MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules); RegistrationData data = new RegistrationData(mockDB.Context); Student student = new Student { StudentSchedules = new List <StudentSchedule>(), PersonId = 5 }; CourseSchedule schedule = new CourseSchedule { Capacity = 3, StudentSchedules = new List <StudentSchedule> { new StudentSchedule(), new StudentSchedule() }, Schedule = new Schedule { StartTime = new TimeSpan(8, 0, 0), TimeBlocks = 1 }, ProfessorId = 5 }; mockDB.AddDataEntry(schedule); data.RegisterForCourse(student, schedule); Assert.Equal(schedule.StudentSchedules.ToList().Count, 2); mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Never()); }
public void TestCanFinish() { //无环 var arr = new int[, ] { { 1, 0 }, { 2, 0 }, { 3, 1 }, { 5, 2 }, { 4, 3 }, { 3, 6 }, }; var r = CourseSchedule.CanFinish(7, arr); Assert.AreEqual(r, true); //有环 arr = new int[, ] { { 1, 0 }, { 2, 0 }, { 3, 1 }, { 5, 2 }, { 4, 3 }, { 3, 6 }, { 6, 4 }, }; r = CourseSchedule.CanFinish(7, arr); Assert.AreEqual(r, false); }
public void Test_GetNumberOfStudentsInCourse() { MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules); RegistrationData data = new RegistrationData(mockDB.Context); CourseSchedule schedule = new CourseSchedule { Capacity = 3, StudentSchedules = new List <StudentSchedule> { new StudentSchedule { Enrolled = true }, new StudentSchedule { Enrolled = false }, new StudentSchedule { Enrolled = true } } }; mockDB.AddDataEntry(schedule); int expected = 2; int actual = data.GetNumberOfStudentsInCourse(schedule); Assert.Equal(expected, actual); }
public void Test_ScheduleCourse_ProfessorIsTeachingCourseAtSameTime() { MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules); RegistrationData data = new RegistrationData(mockDB.Context); CourseSchedule existingCourseSchedule = new CourseSchedule { Schedule = new Schedule { StartTime = new TimeSpan(8, 0, 0), TimeBlocks = 2 } }; Person professor = new Person { PersonId = 5, CourseSchedules = new List <CourseSchedule> { existingCourseSchedule } }; Schedule schedule = new Schedule { StartTime = new TimeSpan(9, 30, 0), TimeBlocks = 1 }; Course course = new Course { CourseSchedules = new List <CourseSchedule> { existingCourseSchedule } }; data.ScheduleCourse(course, schedule, professor, 3); mockDB.MockSet.Verify(m => m.Add(It.IsAny <CourseSchedule>()), Times.Never()); mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Never()); }
public void Test_ModifyCourse() { MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules); RegistrationData data = new RegistrationData(mockDB.Context); CourseSchedule existingCourseSchedule = new CourseSchedule { Schedule = new Schedule { StartTime = new TimeSpan(8, 0, 0), TimeBlocks = 2 }, Capacity = 15 }; mockDB.AddDataEntry(existingCourseSchedule); Schedule schedule = new Schedule { StartTime = new TimeSpan(11, 0, 0), TimeBlocks = 1 }; short capacity = 30; data.ModifyCourse(existingCourseSchedule, schedule, capacity); Assert.Equal(schedule.StartTime, existingCourseSchedule.Schedule.StartTime); Assert.Equal(schedule.TimeBlocks, existingCourseSchedule.Schedule.TimeBlocks); Assert.Equal(capacity, existingCourseSchedule.Capacity); mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Once()); }
public ModelInvokeResult <CourseSchedulePK> Update(string strId, CourseSchedule courseSchedule) { ModelInvokeResult <CourseSchedulePK> result = new ModelInvokeResult <CourseSchedulePK> { Success = true }; try { List <IBatisNetBatchStatement> statements = new List <IBatisNetBatchStatement>(); int _Id = Convert.ToInt32(strId); /***********************begin 自定义代码*******************/ courseSchedule.OperatedBy = NormalSession.UserId.ToGuid(); courseSchedule.OperatedOn = DateTime.Now; courseSchedule.DataSource = GlobalManager.DIKey_00012_ManualEdit; /***********************end 自定义代码*********************/ statements.Add(new IBatisNetBatchStatement { StatementName = courseSchedule.GetUpdateMethodName(), ParameterObject = courseSchedule.ToStringObjectDictionary(false), Type = SqlExecuteType.UPDATE }); /***********************begin 自定义代码*******************/ /***********************此处添加自定义代码*****************/ /***********************end 自定义代码*********************/ BuilderFactory.DefaultBulder().ExecuteNativeSqlNoneQuery(statements); result.instance = new CourseSchedulePK { Id = _Id }; } catch (Exception ex) { result.Success = false; result.ErrorMessage = ex.Message; } return(result); }
public void DataDrivenTest(int testId, int numCourses, string prerequisites, bool expected) { var sut = new CourseSchedule(); bool actual = MeasureAndExecute(testId, () => sut.CanFinish(numCourses, prerequisites.ToTwoDimentionArray())); actual.Should().Be(expected); }
private static bool courseScheduleTest2() { string[] solution = CourseSchedule.compute(new string[, ] { { "a", "b" }, { "b", "c" }, { "c", "d" } }); return(solution.SequenceEqual(new string[] { "a", "b", "c", "d" })); }
private static void Refactor() { MinEditDistance.Init(); // Not Solved CourseSchedule.Init(); // Not solved - GRAPHS PossibleBiPartition.Init(); // Not solved - GRAPHS ImplementStrStrLc28.Init(); // KMP Algo for ImplementStrStrLc28 NumberComplement.Init(); // Refactor existing implementation }
public ActionResult DeleteConfirmed(int id) { CourseSchedule courseSchedule = db.CourseSchedules.Find(id); db.CourseSchedules.Remove(courseSchedule); db.SaveChanges(); return(RedirectToAction("Index")); }
public void TestCanFinish() { Assert.IsTrue(CourseSchedule.CanFinish(3, new int[, ] { { 1, 0 }, { 2, 0 }, { 2, 1 } })); Assert.IsFalse(CourseSchedule.CanFinish(3, new int[, ] { { 1, 0 }, { 0, 1 } })); }
public void FindOrderTest3() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[0][]; //pre[0] = new int[0]; int[] res = courseSchedule.FindOrder(1, pre); Assert.IsTrue(res[0] == 0); }
public void TestCase_1() { var prerequisits = new int[1][]; prerequisits[0] = new[] { 1, 0 }; var courseScheduler = new CourseSchedule(); Assert.True(courseScheduler.CanFinish(2, prerequisits)); }
public void FindOrderTest4() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[2][]; pre[0] = new int[] { 0, 1 }; pre[1] = new int[] { 1, 0 }; int[] res = courseSchedule.FindOrder(2, pre); Assert.IsTrue(res.Length == 0); }
public void FindOrderTest() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[1][]; pre[0] = new int[] { 1, 0 }; int[] res = courseSchedule.FindOrder(2, pre); Assert.IsTrue(res[0] == 0); Assert.IsTrue(res[1] == 1); }
public void CanFinishTest() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[1][]; pre[0] = new int[] { 0, 1 }; bool res = courseSchedule.CanFinish(2, pre); Assert.IsTrue(res); }
public void TestCase_2() { var prerequisits = new int[2][]; prerequisits[0] = new[] { 1, 0 }; prerequisits[1] = new[] { 0, 1 }; var courseScheduler = new CourseSchedule(); Assert.False(courseScheduler.CanFinish(2, prerequisits)); }
public void CanFinishTest6() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[2][]; pre[0] = new int[] { 1, 0 }; pre[1] = new int[] { 2, 1 }; bool res = courseSchedule.CanFinish(3, pre); Assert.IsTrue(res); }
public void CanFinishTest2() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[2][]; pre[0] = new int[] { 0, 1 }; pre[1] = new int[] { 1, 0 }; bool res = courseSchedule.CanFinish(2, pre); Assert.IsFalse(res); }
public void TestFindOrder() { Assert.AreEqual(new int[] { 0, 1, 2, 3 }, CourseSchedule.FindOrder(4, new int[, ] { { 1, 0 }, { 2, 0 }, { 3, 1 }, { 3, 2 } })); // can have multiple solution Assert.AreEqual(new int[] { 0, 1, 2 }, CourseSchedule.FindOrder(3, new int[, ] { { 1, 0 }, { 2, 0 }, { 2, 1 } })); Assert.AreEqual(new int[] { }, CourseSchedule.FindOrder(3, new int[, ] { { 1, 0 }, { 0, 1 } })); }
public void TestOrder() { //无环 var arr = new int[, ] { { 1, 0 }, { 2, 0 }, { 3, 1 }, { 5, 2 }, { 4, 3 }, { 3, 6 }, }; var r = CourseSchedule.FindOrder(7, arr); //上面这图里按照我写的算法是分层次的 06最外层,12第二层,35第三层,4最后,同一层次里数组里先出现结果里也先出现 var s = string.Join("", r); Assert.AreEqual(s.Substring(0, 2), "06"); Assert.AreEqual(s.Substring(2, 2), "12"); Assert.AreEqual(s.Substring(4, 2), "35"); Assert.AreEqual(s.Substring(6, 1), "4"); //无环 arr = new int[, ] { { 1, 0 }, { 2, 0 }, { 3, 1 }, { 3, 2 } }; r = CourseSchedule.FindOrder(4, arr); //上面这图里按照我写的算法是分层次的 06最外层,12第二层,35第三层,4最后,同一层次里数组里先出现结果里也先出现 s = string.Join("", r); Assert.AreEqual(s.Substring(0, 1), "0"); Assert.AreEqual(s.Substring(1, 2), "12"); Assert.AreEqual(s.Substring(3, 1), "3"); //有环 arr = new int[, ] { { 1, 0 }, { 2, 0 }, { 3, 1 }, { 5, 2 }, { 4, 3 }, { 3, 6 }, { 6, 4 }, }; r = CourseSchedule.FindOrder(7, arr); Assert.AreEqual(r.Length, 0); }
public void Test_CancelCourse() { MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules); RegistrationData data = new RegistrationData(mockDB.Context); CourseSchedule existingCourseSchedule = new CourseSchedule(); mockDB.AddDataEntry(existingCourseSchedule); data.CancelCourse(existingCourseSchedule); mockDB.MockSet.Verify(m => m.Remove(It.IsAny <CourseSchedule>()), Times.Once()); mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Once()); }
public ActionResult Edit([Bind(Include = "Id,StartTime,FinishTime,DayOfWeekId,RoomId,TrainerId,CourseId,Description")] CourseSchedule courseSchedule) { if (ModelState.IsValid) { db.Entry(courseSchedule).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.CourseId = new SelectList(db.Courses, "Id", "Name", courseSchedule.CourseId); ViewBag.DayOfWeekId = new SelectList(db.DaysOfWeeks, "Id", "Name", courseSchedule.DayOfWeekId); ViewBag.RoomId = new SelectList(db.Rooms, "Id", "Name", courseSchedule.RoomId); ViewBag.TrainerId = new SelectList(db.Trainers, "Id", "Name", courseSchedule.TrainerId); return(View(courseSchedule)); }
// GET: CourseSchedules/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CourseSchedule courseSchedule = db.CourseSchedules.Find(id); if (courseSchedule == null) { return(HttpNotFound()); } return(View(courseSchedule)); }
/// <summary> /// Convert CourseSchedule into CourseScheduleDAO. /// </summary> /// <param name="courseSchedule">The CourseSchedule to convert.</param> /// <returns>The CourseScheduleDAO.</returns> public static CourseScheduleDAO MapToCourseScheduleDAO(CourseSchedule courseSchedule) { RegistrationData data = new RegistrationData(); return(new CourseScheduleDAO { Id = courseSchedule.CourseScheduleId, Professor = MapToPersonDAO(courseSchedule.Person), Capacity = courseSchedule.Capacity, Course = MapToCourseDAO(courseSchedule.Course), Schedule = MapToScheduleDAO(courseSchedule.Schedule), Enrolled = data.GetNumberOfStudentsInCourse(courseSchedule) }); }
public List <CourseSchedule> GetCourseScheduleList(ref List <string> errors) { var conn = new SqlConnection(ConnectionString); var courseScheduleList = new List <CourseSchedule>(); try { var adapter = new SqlDataAdapter(GetCourseScheduleProcedure, conn) { SelectCommand = { CommandType = CommandType.StoredProcedure } }; var dataSet = new DataSet(); adapter.Fill(dataSet); if (dataSet.Tables[0].Rows.Count == 0) { return(null); } for (var i = 0; i < dataSet.Tables[0].Rows.Count; i++) { var courseSchedule = new CourseSchedule { ScheduleId = (int)dataSet.Tables[0].Rows[i]["schedule_id"], CourseId = (int)dataSet.Tables[0].Rows[i]["course_id"], Year = (int)dataSet.Tables[0].Rows[i]["year"], Quarter = dataSet.Tables[0].Rows[i]["quarter"].ToString(), Session = dataSet.Tables[0].Rows[i]["session"].ToString(), CourseTitle = dataSet.Tables[0].Rows[i]["course_title"].ToString(), CourseDescription = dataSet.Tables[0].Rows[i]["course_description"].ToString(), }; courseScheduleList.Add(courseSchedule); } } catch (Exception e) { errors.Add("Error: " + e); } finally { conn.Dispose(); } return(courseScheduleList); }
public void FindOrderTest2() { CourseSchedule courseSchedule = new CourseSchedule(); int[][] pre = new int[4][]; pre[0] = new int[] { 1, 0 }; pre[1] = new int[] { 2, 0 }; pre[2] = new int[] { 3, 1 }; pre[3] = new int[] { 3, 2 }; int[] res = courseSchedule.FindOrder(4, pre); Assert.IsTrue(res[0] == 0); Assert.IsTrue(res[1] == 1 || res[1] == 2); Assert.IsTrue(res[2] == 1 || res[2] == 2); Assert.IsTrue(res[3] == 3); }
public void TestCase_3() { //3 //[[0,1],[0,2],[1,2]] var prerequisits = new int[3][]; prerequisits[0] = new[] { 0, 1 }; prerequisits[1] = new[] { 0, 2 }; prerequisits[2] = new[] { 1, 2 }; var courseScheduler = new CourseSchedule(); Assert.True(courseScheduler.CanFinish(3, prerequisits)); }
public void Test_GetCourse() { MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules); RegistrationData data = new RegistrationData(mockDB.Context); CourseSchedule schedule = new CourseSchedule { CourseScheduleId = 3 }; mockDB.AddDataEntry(schedule); CourseSchedule foundSchedule = data.GetCourse(3); mockDB.MockSet.Verify(m => m.Find(It.IsAny <int>()), Times.Once()); }
/// <summary> /// Convert CourseScheduleDAO into CourseSchedule. /// </summary> /// <param name="courseScheduleDAO">The CourseScheduleDAO to convert.</param> /// <returns>The CourseSchedule.</returns> public static CourseSchedule MapToCourseSchedule(CourseScheduleDAO courseScheduleDAO) { RegistrationData data = new RegistrationData(); CourseSchedule courseSchedule = data.FindOrCreateCourseSchedule(courseScheduleDAO.Id); courseSchedule.CourseScheduleId = courseScheduleDAO.Id; courseSchedule.Person = MapToPerson(courseScheduleDAO.Professor); courseSchedule.ProfessorId = courseScheduleDAO.Professor.Id; courseSchedule.Capacity = courseScheduleDAO.Capacity; courseSchedule.Course = MapToCourse(courseScheduleDAO.Course); courseSchedule.CourseId = courseScheduleDAO.Course.Id; courseSchedule.Schedule = MapToSchedule(courseScheduleDAO.Schedule); courseSchedule.ScheduleId = courseScheduleDAO.Schedule.Id; return(courseSchedule); }