Skip to content
Snippets Groups Projects
ug2report1.py 3.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • tuhe's avatar
    tuhe committed
    # from unitgrade.unitgrade import QuestionGroup, Report, QPrintItem
    # from unitgrade.unitgrade_helpers import evaluate_report_student
    
    
    tuhe's avatar
    tuhe committed
    from src.unitgrade2.unitgrade2 import UTestCase, cache
    
    tuhe's avatar
    tuhe committed
    from unittest import TestCase
    
    tuhe's avatar
    tuhe committed
    # from unitgrade2.unitgrade2 import cache
    
    tuhe's avatar
    tuhe committed
    from src.unitgrade2.unitgrade2 import hide
    
    tuhe's avatar
    tuhe committed
    
    import random
    
    tuhe's avatar
    tuhe committed
    from cs202courseware.homework1 import my_sum
    
    tuhe's avatar
    tuhe committed
    
    
    tuhe's avatar
    tuhe committed
    class TestPartial(TestCase):
        def test_a(self):
            self.assertEqual(2,2)
    
        def test_b(self):
            """ Question b """
            import numpy as np
            a = np.asarray(31)
            z = a * 23
            self.assertEqual(2,3)
    
        def test_c(self):
            self.assertEqual(2,2)
    
        # def test_d(self):
        #     self.assertEqual(2,2)
    
    
    
    
    tuhe's avatar
    tuhe committed
    class GeneratorQuestion(UTestCase):
        def genTest(self, n):
            seq = [random.randint(1, 100000) for _ in range(n)]
            return my_sum(seq)
    
        @hide
        def test_sum(self):
            random.seed(42)
            self.assertEqualC(my_sum([1,1]))
            self.assertEqualC(my_sum([7, 2, 4, -3, 1, 1, 5, 4]))
            self.assertEqualC(self.genTest(10))
            self.assertEqualC(my_sum([1]))
            self.assertEqualC(my_sum([-5]))
            for s in [4]: # [5, 100, 1000, 10000, 100000, 500000]:
                self.assertEqualC(self.genTest(s))
    
    
    class ListQuestion(UTestCase):
        """ Docstring at top """
        @classmethod
        def setUpClass(cls) -> None:
            z = 23424
            # print(" calling setUpClass()...")
            pass
    
        def test_integers(self):
            """ aa test_integers-short """
            self.__class__.a = "fun1"
            from cs101courseware_example.homework1 import reverse_list
            self.assertEqual(reverse_list([1, 2, 3]), [3, 2, 1])
            self.assertEqualC(reverse_list([1,2,3]))
            self.assertEqualC(reverse_list(["23", "asdfsadf"]))
            return dict(title="test integers...")
    
        @cache
        def my_funny_computation(self, a):
            return a*2
    
        def test_strings(self):
            """ xxxxtest_integers-short """
            # import time
            # time.sleep(1.1)
            a = self.my_funny_computation(2)
    
            from cs101courseware_example.homework1 import reverse_list
            l =  ["hello", "world", "summer", "dog"]
            self.assertEqual(reverse_list(l), list(reversed(l)))
    
        def test_more_integerrs(self):
            """ ccc test_integers-short """
            self.assertEqual(2,2)
    
    
    tuhe's avatar
    tuhe committed
    from src.unitgrade2.unitgrade2 import Report
    
    tuhe's avatar
    tuhe committed
    
    class Report1(Report):
        title = "CS 202 Report 1"
        questions = [
    
    tuhe's avatar
    tuhe committed
            # (GeneratorQuestion, 10),
            # (ListQuestion, 5),
            (TestPartial,100),
    
    tuhe's avatar
    tuhe committed
                    ]
    
        import cs202courseware
        pack_imports = [cs202courseware]  # Include this file in .token file
        a = 234
    
    
    if __name__ == "__main__":
        """
        Capture output in TestCase
        
        HTML test runner:
        https://awesomeopensource.com/project/oldani/HtmlTestRunner
        
        """
    
    tuhe's avatar
    tuhe committed
        # import inspect
        # ls = list(methodsWithDecorator(GeneratorQuestion, hide))
        # for f in ls:
        #     print(inspect.getsourcelines(f) ) # How to get all hidden questions.
    
    
    tuhe's avatar
    tuhe committed
    
    
    tuhe's avatar
    tuhe committed
        from src.unitgrade2 import evaluate_report_student
    
    tuhe's avatar
    tuhe committed
        # cov = coverage.Coverage()
        # cov.start()
    
    tuhe's avatar
    tuhe committed
    
        evaluate_report_student( Report1() )
    
    tuhe's avatar
    tuhe committed
        from modulefinder import ModuleFinder
        finder = ModuleFinder()
        finder.run_script()
    
    tuhe's avatar
    tuhe committed
        # unittest.main(verbosity=2)
    
    tuhe's avatar
    tuhe committed
        # cov.stop()
        # cov.html_report()
        z = 234
    
    tuhe's avatar
    tuhe committed
        # deploy the report
    
    tuhe's avatar
    tuhe committed
        # from unitgrade_private2.hidden_create_files import setup_grade_file_report
        # setup_grade_file_report(Report1, minify=False, obfuscate=False, execute=False)
    
    tuhe's avatar
    tuhe committed