Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# from unitgrade.unitgrade import QuestionGroup, Report, QPrintItem 

2# from unitgrade.unitgrade_helpers import evaluate_report_student 

3 

4from cs202courseware import homework1 

5import unittest 

6 

7from unitgrade2.unitgrade2 import wrapper, UTestCase, cache 

8from unittest import TestCase 

9# from unitgrade2.unitgrade2 import cache 

10from unitgrade2.unitgrade2 import methodsWithDecorator, hide 

11 

12import random 

13from cs202courseware.homework1 import reverse_list, my_sum 

14 

15class TestPartial(TestCase): 

16 def test_a(self): 

17 self.assertEqual(2,2) 

18 

19 def test_b(self): 

20 """ Question b """ 

21 import numpy as np 

22 a = np.asarray(31) 

23 z = a * 23 

24 self.assertEqual(2,3) 

25 

26 def test_c(self): 

27 self.assertEqual(2,2) 

28 

29 # def test_d(self): 

30 # self.assertEqual(2,2) 

31 

32 

33 

34class GeneratorQuestion(UTestCase): 

35 def genTest(self, n): 

36 seq = [random.randint(1, 100000) for _ in range(n)] 

37 return my_sum(seq) 

38 

39 @hide 

40 def test_sum(self): 

41 random.seed(42) 

42 self.assertEqualC(my_sum([1,1])) 

43 self.assertEqualC(my_sum([7, 2, 4, -3, 1, 1, 5, 4])) 

44 self.assertEqualC(self.genTest(10)) 

45 self.assertEqualC(my_sum([1])) 

46 self.assertEqualC(my_sum([-5])) 

47 for s in [4]: # [5, 100, 1000, 10000, 100000, 500000]: 

48 self.assertEqualC(self.genTest(s)) 

49 

50 

51class ListQuestion(UTestCase): 

52 """ Docstring at top """ 

53 @classmethod 

54 def setUpClass(cls) -> None: 

55 z = 23424 

56 # print(" calling setUpClass()...") 

57 pass 

58 

59 def test_integers(self): 

60 """ aa test_integers-short """ 

61 self.__class__.a = "fun1" 

62 from cs101courseware_example.homework1 import reverse_list 

63 self.assertEqual(reverse_list([1, 2, 3]), [3, 2, 1]) 

64 self.assertEqualC(reverse_list([1,2,3])) 

65 self.assertEqualC(reverse_list(["23", "asdfsadf"])) 

66 return dict(title="test integers...") 

67 

68 @cache 

69 def my_funny_computation(self, a): 

70 return a*2 

71 

72 def test_strings(self): 

73 """ xxxxtest_integers-short """ 

74 # import time 

75 # time.sleep(1.1) 

76 a = self.my_funny_computation(2) 

77 

78 from cs101courseware_example.homework1 import reverse_list 

79 l = ["hello", "world", "summer", "dog"] 

80 self.assertEqual(reverse_list(l), list(reversed(l))) 

81 

82 def test_more_integerrs(self): 

83 """ ccc test_integers-short """ 

84 self.assertEqual(2,2) 

85 

86from unitgrade2.unitgrade2 import Report 

87 

88class Report1(Report): 

89 title = "CS 202 Report 1" 

90 questions = [ 

91 # (GeneratorQuestion, 10), 

92 # (ListQuestion, 5), 

93 (TestPartial,100), 

94 ] 

95 

96 import cs202courseware 

97 pack_imports = [cs202courseware] # Include this file in .token file 

98 a = 234 

99 

100import coverage 

101 

102if __name__ == "__main__": 

103 """ 

104 Capture output in TestCase 

105  

106 HTML test runner: 

107 https://awesomeopensource.com/project/oldani/HtmlTestRunner 

108  

109 """ 

110 # import inspect 

111 # ls = list(methodsWithDecorator(GeneratorQuestion, hide)) 

112 # for f in ls: 

113 # print(inspect.getsourcelines(f) ) # How to get all hidden questions. 

114 

115 

116 from unitgrade2.unitgrade_helpers2 import evaluate_report_student 

117 cov = coverage.Coverage() 

118 cov.start() 

119 

120 evaluate_report_student( Report1() ) 

121 # unittest.main(verbosity=2) 

122 cov.stop() 

123 cov.html_report() 

124 z = 234 

125 # deploy the report 

126 # from unitgrade_private2.hidden_create_files import setup_grade_file_report 

127 # setup_grade_file_report(Report1, minify=False, obfuscate=False, execute=False) 

128