def test_3(self): points = 0 num_tests = 10 test_values = np.random.choice(np.arange(2, 30), size=num_tests, replace=False) for in_val in test_values: correct_val = self.ref.fib(in_val) user_val = Feedback.call_user(self.st.fib, in_val) if Feedback.check_scalar(f"fib({in_val})", correct_val, user_val): points += 1 Feedback.set_score(points / num_tests)
def test_0(self): points = 0 a = np.random.rand(4) b = np.random.rand(4) user_val = Feedback.call_user(self.st.my_dot_product, a, b) ref_val = Feedback.call_user(self.ref.my_dot_product, a, b) if Feedback.check_scalar("my_dot_product return value", ref_val, user_val): points += 1 Feedback.set_score(points)
def test_0(self): points = 0 feedback.check_numpy_array_features('b', self.ref.a, self.st.b, accuracy_critical=True) suma = self.ref.beta * np.sum(self.ref.a) sumb = np.sum(self.st.b) if feedback.check_scalar('b', suma, sumb): points += 1 feedback.set_score(points)
def test_0(self): tests = 50 points = 0 xs = np.linspace(-1, 1, tests) alphas = np.linspace(0.1, 0.001, tests) np.random.shuffle(xs) np.random.shuffle(alphas) for i in range(tests): x = xs[i] alpha = alphas[i] ref_xnew = self.ref.gradient_descent(x, alpha) st_xnew = Feedback.call_user(self.st.gradient_descent, x, alpha) if Feedback.check_scalar(f'x={x}, alpha={alpha}', ref_xnew, st_xnew, report_success=True, report_failure=True): points += 1 Feedback.set_score(points / tests)
def test_0(self): points = 0 test_strings = ['', 'a', 'peak'] num_tests = len(test_strings) for s in test_strings: correct_val = self.ref.checkPalindrome(s) user_val = True if self.ref.function == 'is_palindrome_all': user_val = Feedback.call_user(self.st.is_palindrome_all, s) elif self.ref.function == 'is_palindrome_any': user_val = Feedback.call_user(self.st.is_palindrome_any, s) else: user_val = Feedback.call_user(self.st.is_palindrome_none, s) if Feedback.check_scalar(f"checkPalindrome({s})", correct_val, user_val): points += 1 if points < 3: points = 0 Feedback.set_score(points / num_tests)
def test_1(self): points = 0 results = feedback.call_user(self.st.array_to_scalar, self.ref.a1, self.ref.a2) ## Testing if the return values are given correctly if results is not None: if hasattr(results, '__len__'): if (len(results) != 2): feedback.add_feedback( 'Your function is not returning the correct number of variables' ) self.fail() else: (st_c, st_sumc) = results else: feedback.add_feedback( 'The return variables do not appear to be in tuple format') self.fail() else: feedback.add_feedback( 'Your function is not returning any variables.') self.fail() if feedback.check_numpy_array_allclose('c', self.ref.c, st_c, accuracy_critical=False): points += 0.5 if feedback.check_scalar('sum_c', self.ref.sum_c, st_sumc, accuracy_critical=True): points += 0.5 feedback.set_score(points)
def test_3(self): points = 0 test_strings = [ 'abc', 'c al', 'aabb', 'abcdefghi', 'palindrome', 'abbba', 'abcba', 'abca', 'refer', 'berkeley', 'abccba', 'abcdedcba' ] num_tests = 8 for s in test_strings: correct_val = self.ref.checkPalindrome(s) if isinstance(correct_val, bool): user_val = True if self.ref.function == 'is_palindrome_all': user_val = Feedback.call_user(self.st.is_palindrome_all, s) elif self.ref.function == 'is_palindrome_any': user_val = Feedback.call_user(self.st.is_palindrome_any, s) else: user_val = Feedback.call_user(self.st.is_palindrome_none, s) if Feedback.check_scalar(f"checkPalindrome({s})", correct_val, user_val): points += 1 if points <= 5: points = 0 Feedback.set_score(points / num_tests)
def test_2(self): user_val = Feedback.call_user(self.st.fib, 7) if Feedback.check_scalar("fib(7)", self.ref.fib(7), user_val): Feedback.set_score(1) else: Feedback.set_score(0)
def test_1(self): user_val = Feedback.call_user(self.st.nib, 1) if Feedback.check_scalar("nib(1)", self.ref.nib(1), user_val): Feedback.set_score(1) else: Feedback.set_score(0)
def test_0(self): if Feedback.check_scalar("area", self.ref.area, self.st.area): Feedback.set_score(1) else: Feedback.set_score(0)
def test_1(self): score = 0 if feedback.check_scalar("hours", self.ref.hours, self.st.hours, accuracy_critical=False): score += 1.0 feedback.set_score(score)
def test_0(self): if Feedback.check_scalar('x_sq', self.ref.x_sq, self.st.x_sq, accuracy_critical=False): Feedback.set_score(1) else: Feedback.set_score(0)
def test_6(self): if Feedback.check_scalar('next_k', self.ref.next_k, self.st.next_k): Feedback.set_score(1) else: Feedback.set_score(0)
def test_2(self): if Feedback.check_scalar('pivot', self.ref.pivot, self.st.pivot): Feedback.set_score(1) else: Feedback.set_score(0)
def test_0(self): user_val = Feedback.call_user(self.st.trib, 0) if Feedback.check_scalar("trib(0)", self.ref.trib(0), user_val): Feedback.set_score(1) else: Feedback.set_score(0)