# from unitgrade.unitgrade import QuestionGroup, Report, QPrintItem # from unitgrade.unitgrade_helpers import evaluate_report_student from src.unitgrade2.unitgrade2 import UTestCase, cache from unittest import TestCase # from unitgrade2.unitgrade2 import cache from src.unitgrade2.unitgrade2 import hide import random from cs202courseware.homework1 import my_sum 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) 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) from src.unitgrade2.unitgrade2 import Report class Report1(Report): title = "CS 202 Report 1" questions = [ # (GeneratorQuestion, 10), # (ListQuestion, 5), (TestPartial,100), ] 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 """ # import inspect # ls = list(methodsWithDecorator(GeneratorQuestion, hide)) # for f in ls: # print(inspect.getsourcelines(f) ) # How to get all hidden questions. from src.unitgrade2 import evaluate_report_student # cov = coverage.Coverage() # cov.start() evaluate_report_student( Report1() ) from modulefinder import ModuleFinder finder = ModuleFinder() finder.run_script() # unittest.main(verbosity=2) # cov.stop() # cov.html_report() z = 234 # deploy the report # from unitgrade_private2.hidden_create_files import setup_grade_file_report # setup_grade_file_report(Report1, minify=False, obfuscate=False, execute=False)