public void MatchSucceedsWithDenormalizedCorrectValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 50, Value = "1ab       C    1"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 50, Value = "2xyZ             2"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "1  A  B  C  1", "2  X  Y  Z  2" }
                };

                var match = new Match(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.True(grade.Success);
            }
        }
        public void MatchFailsWithIncorrectValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 50, Value = "1111"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 50, Value = "2222"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "aaaa", "bbbb" }
                };

                var match = new Match(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.False(grade.Success);
            }
        }
        public void MatchAnySucceedsWithCorrectValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 50, Value = "ONE|TWO|THREE"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 50, Value = "FOUR|FIVE|SIX"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "three", "five" }
                };

                var match = new MatchAny(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.True(grade.Success);
            }
        }
        public void MatchAnyFailsWithPartialCredit()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 10, Value = "OnE|TWO|ThReE"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 90, Value = "4|5|6"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "two", "J" }
                };

                var match = new MatchAny(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.False(grade.Success);

                Assert.Equal(10, grade.CorrectPercent);
            }
        }
        public void MatchAlphaNumericFailsWithIncorrectValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 50, Value = "1111"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 50, Value = "2222"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "@%@#%@#%@#%@^aaaa^^#@$^@$!#$!", "#%@^@#$^@#$@#$bbbb@%^@#^@%^@#$%@#" }
                };

                var match = new MatchAlphaNumeric(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.False(grade.Success);
            }
        }
示例#6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app,
                              IHostingEnvironment env,
                              GradingContext context,
                              RoleManager <IdentityRole> roleManager,
                              UserManager <IdentityUser> userManager)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseAuthentication();
            app.UseHttpsRedirection();
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Group Grading API V1");
            });
            app.UseMvc();
            app.Run(async c => {
                c.Response.Redirect("swagger");
            });
            DummyData.Initialize(context, userManager).Wait();
        }
        public void MatchAlphaNumericSucceedsWithCorrectValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 50, Value = "1111Aa"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 50, Value = "2222Bb"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "!$!@$!$%!%1111^%$^$%^$%^$%^Aa", "#@%$@#%^@#^$#$^2222@^#$^@$!@$!$Bb" }
                };

                var match = new MatchAlphaNumeric(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.True(grade.Success);
            }
        }
        public void MatchAllFailsWithPartialCredit()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 60, Value = "THREE|TWO|ONE"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 40, Value = "SIX|FIVE|FOUR"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "one is smaller than two is smaller than three", "four is less than five is less than seven" }
                };

                var match = new MatchAll(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.False(grade.Success);

                Assert.Equal(60, grade.CorrectPercent);
            }
        }
        public void MatchAllFailsWithIncorrectValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 50, Value = "THREE|TWO|ONE"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 50, Value = "SIX|FIVE|FOUR"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "one, two, four", "three five six" }
                };

                var match = new MatchAll(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.False(grade.Success);
            }
        }
示例#10
0
        public void MatchAlphaNumericFailsWithPartialCredit()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 10, Value = "1111Aa"
                },
                                                                new TokenSpec {
                    Label = "2", Percent = 90, Value = "2222Bb"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "^%@$#^$%@#^$%@^$@^#$@%#$%#$@%#@$%", "2222!Bb" }
                };

                var match = new MatchAlphaNumeric(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.False(grade.Success);

                Assert.Equal(90, grade.CorrectPercent);
            }
        }
示例#11
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, GradingContext context, RoleManager <IdentityRole> roleManager, UserManager <IdentityUser> userManager)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseMvc();

            //DummyData.Initialize(app);
        }
示例#12
0
        public void MatchAlphaNumericSucceedsWithCorrectSingleValues()
        {
            using (var context = new GradingContext())
            {
                var problemContext = context.MockProblemContext(100,
                                                                new TokenSpec {
                    Label = "1", Percent = 100, Value = "123.456-7&8"
                }
                                                                );

                var problemFlag = new ProblemFlag
                {
                    Id           = Guid.NewGuid().ToString(),
                    SubmissionId = Guid.NewGuid().ToString(),
                    Tokens       = new string[] { "..123~456~78" }
                };

                var match = new MatchAlphaNumeric(context.Options, context.Logger, problemContext);

                var grade = match.GradeTokens(problemFlag);

                Assert.True(grade.Success);
            }
        }
示例#13
0
 /**
  * EvaluationController
  *
  * Constructor
  *
  * @param GradingContext context - database context
  * @param UserManager<IdentityUser> userManger - manages user identities
  */
 public EvaluationController(GradingContext context, UserManager <IdentityUser> userManager)
 {
     _userManager = userManager;
     _context     = context;
 }
 public StudentsController(GradingContext context)
 {
     _context = context;
 }
 /**
  * StudentGroupController
  *
  * Constructor
  *
  * @param GradingContext context - database context
  * @param UserManager<IdentityUser> userManger - manages user identities
  */
 public StudentGroupController(GradingContext context, UserManager <IdentityUser> userManager)
 {
     _userManager = userManager;
     _context     = context;
 }
示例#16
0
 public CourseController(GradingContext context, UserManager <IdentityUser> userManager)
 {
     _userManager = userManager;
     _context     = context;
 }
示例#17
0
 /**
  * AuthController
  *
  * Constructor
  *
  * @param GradingContext context - database context
  * @param UserManager<IdentityUser> userManger - manages user identities
  * @param IConfiguration configuration - key/value configuration properties
  */
 public AuthController(GradingContext context, UserManager <IdentityUser> userManager, IConfiguration configuration)
 {
     _userManager   = userManager;
     _configuration = configuration;
     _context       = context;
 }