Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
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)
Ejemplo n.º 10
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)
Ejemplo n.º 11
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)
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
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)
Ejemplo n.º 14
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)
Ejemplo n.º 15
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)