MDL-47110 Grades: Change how updated weights notifications are detected.
[moodle.git] / grade / tests / behat / grade_natural_normalisation.feature
CommitLineData
f70da024 1@core @core_grades @adrian
519429b2
AG
2Feature: We can use natural aggregation and weights will be normalised to a total of one hundred
3 In order to override weights
4 As a teacher
5 I need to add assessments to the gradebook.
6
7 Background:
8 Given the following "courses" exist:
9 | fullname | shortname | category | groupmode |
10 | Course 1 | C1 | 0 | 1 |
11 And the following "users" exist:
12 | username | firstname | lastname | email | idnumber |
13 | teacher1 | Teacher | 1 | teacher1@asd.com | t1 |
14 | student1 | Student | 1 | student1@asd.com | s1 |
15 And the following "course enrolments" exist:
16 | user | course | role |
17 | teacher1 | C1 | editingteacher |
18 | student1 | C1 | student |
19 And the following "grade categories" exist:
20 | fullname | course |
21 | Sub category 1 | C1 |
22 And the following "activities" exist:
23 | activity | course | idnumber | name | intro | grade |
24 | assign | C1 | a1 | Test assignment one | Submit something! | 300 |
25 | assign | C1 | a2 | Test assignment two | Submit something! | 100 |
26 | assign | C1 | a3 | Test assignment three | Submit something! | 150 |
27 | assign | C1 | a4 | Test assignment four | Submit nothing! | 150 |
28 And the following "activities" exist:
29 | activity | course | idnumber | name | intro | gradecategory | grade |
30 | assign | C1 | a5 | Test assignment five | Submit something! | Sub category 1 | 20 |
31 | assign | C1 | a6 | Test assignment six | Submit something! | Sub category 1 | 10 |
32 | assign | C1 | a7 | Test assignment seven | Submit nothing! | Sub category 1 | 15 |
33 And I log in as "teacher1"
34 And I follow "Course 1"
35 And I follow "Grades"
36 And I set the field "Grade report" to "Set up grades layout"
2f15decb
MG
37
38 @javascript
39 Scenario: Setting all weights in a category to exactly one hundred in total.
40
41 And the field "Weight of Test assignment five" matches value "44.444"
42 And the field "Weight of Test assignment six" matches value "22.222"
43 And the field "Weight of Test assignment seven" matches value "33.333"
44 When I set the field "Override weight of Test assignment five" to "1"
45 And I set the field "Override weight of Test assignment six" to "1"
46 And I set the field "Override weight of Test assignment seven" to "1"
47 And I set the field "Weight of Test assignment five" to "30"
48 And I set the field "Weight of Test assignment six" to "50"
49 And I set the field "Weight of Test assignment seven" to "20"
50 And I press "Save changes"
51
52 Then I should not see "Your weights have been adjusted to total 100."
53 And the field "Weight of Test assignment five" matches value "30.0"
54 And the field "Weight of Test assignment six" matches value "50.0"
55 And the field "Weight of Test assignment seven" matches value "20.0"
56
57 @javascript
58 Scenario: Setting all weights in a category to less than one hundred is normalised.
59
60 When I set the field "Override weight of Test assignment five" to "1"
61 And I set the field "Override weight of Test assignment six" to "1"
62 And I set the field "Override weight of Test assignment seven" to "1"
63 And I set the field "Weight of Test assignment five" to "1"
64 And I set the field "Weight of Test assignment six" to "1"
65 And I set the field "Weight of Test assignment seven" to "2"
66 And I press "Save changes"
67
68 Then I should see "Your weights have been adjusted to total 100."
69 And the field "Weight of Test assignment five" matches value "25.0"
70 And the field "Weight of Test assignment six" matches value "25.0"
71 And the field "Weight of Test assignment seven" matches value "50.0"
72
73 @javascript
74 Scenario: Set one of the grade item weights to a figure over one hundred.
75
76 When I set the field "Override weight of Test assignment five" to "1"
77 And I set the field "Weight of Test assignment five" to "120"
78 And I press "Save changes"
79
80 Then I should see "Your weights have been adjusted to total 100."
81 And the field "Weight of Test assignment five" matches value "100.0"
82 And the field "Weight of Test assignment six" matches value "0.0"
83 And the field "Weight of Test assignment seven" matches value "0.0"
84
85 @javascript
86 Scenario: Setting several but not all grade item weights to over one hundred each.
87
88 When I set the field "Override weight of Test assignment five" to "1"
89 And I set the field "Override weight of Test assignment six" to "1"
90 And I set the field "Weight of Test assignment five" to "150"
91 And I set the field "Weight of Test assignment six" to "150"
92 And I press "Save changes"
93
94 Then I should see "Your weights have been adjusted to total 100."
95 And the field "Weight of Test assignment five" matches value "50.000"
96 And the field "Weight of Test assignment six" matches value "50.000"
97 And the field "Weight of Test assignment seven" matches value "0.0"
98
99 @javascript
100 Scenario: Grade items weights are normalised when all grade item weights are overridden (sum exactly 100). Extra credit is set to zero.
101
102 When I follow "Edit assign Test assignment seven"
103 And I set the field "Extra credit" to "1"
104 And I press "Save changes"
105 And the field "Weight of Test assignment five" matches value "66.667"
106 And the field "Weight of Test assignment six" matches value "33.333"
107 And the field "Weight of Test assignment seven" matches value "50.0"
108 And I set the field "Override weight of Test assignment five" to "1"
109 And I set the field "Override weight of Test assignment six" to "1"
110 And I set the field "Weight of Test assignment five" to "60"
111 And I set the field "Weight of Test assignment six" to "40"
112 And I press "Save changes"
113
114 Then I should not see "Your weights have been adjusted to total 100."
115 And the field "Weight of Test assignment five" matches value "60.000"
116 And the field "Weight of Test assignment six" matches value "40.000"
117 And the field "Weight of Test assignment seven" matches value "0.0"
118 And I follow "Reset weights of Sub category 1"
119 And the field "Weight of Test assignment five" matches value "66.667"
120 And the field "Weight of Test assignment six" matches value "33.333"
121 And the field "Weight of Test assignment seven" matches value "50.0"
122
123 @javascript
124 Scenario: Grade items weights are normalised when all grade item weights are overridden (sum over 100). Extra credit is set to zero.
125
126 When I follow "Edit assign Test assignment seven"
127 And I set the field "Extra credit" to "1"
128 And I press "Save changes"
129 And I set the field "Override weight of Test assignment five" to "1"
130 And I set the field "Override weight of Test assignment six" to "1"
131 And I set the field "Weight of Test assignment five" to "60"
132 And I set the field "Weight of Test assignment six" to "50"
133 And I press "Save changes"
134
135 Then I should see "Your weights have been adjusted to total 100."
136 And the field "Weight of Test assignment five" matches value "54.545"
137 And the field "Weight of Test assignment six" matches value "45.455"
138 And the field "Weight of Test assignment seven" matches value "0.0"
139 And I follow "Reset weights of Sub category 1"
140 And the field "Weight of Test assignment five" matches value "66.667"
141 And the field "Weight of Test assignment six" matches value "33.333"
142 And the field "Weight of Test assignment seven" matches value "50.0"
143
f70da024
AG
144 # @javascript
145 # Scenario: Grade items weights are normalised when all grade item weights are overridden (sum under 100). Extra credit is set to zero.
146
147 # When I follow "Edit assign Test assignment seven"
148 # And I set the field "Extra credit" to "1"
149 # And I press "Save changes"
150 # And I set the field "Override weight of Test assignment five" to "1"
151 # And I set the field "Override weight of Test assignment six" to "1"
152 # And I set the field "Weight of Test assignment five" to "40"
153 # And I set the field "Weight of Test assignment six" to "30"
154 # And I press "Save changes"
155
156 # Then I should see "Your weights have been adjusted to total 100."
157 # And the field "Weight of Test assignment five" matches value "57.143"
158 # And the field "Weight of Test assignment six" matches value "42.857"
159 # And the field "Weight of Test assignment seven" matches value "0.0"
160 # And I follow "Reset weights of Sub category 1"
161 # And the field "Weight of Test assignment five" matches value "66.667"
162 # And the field "Weight of Test assignment six" matches value "33.333"
163 # And the field "Weight of Test assignment seven" matches value "50.0"
2f15decb
MG
164
165 @javascript
166 Scenario: Grade items weights are normalised when not all grade item weights are overridden. Extra credit is set respectful to non-overridden items.
167
168 When I follow "Edit assign Test assignment seven"
169 And I set the field "Extra credit" to "1"
170 And I press "Save changes"
171 And I set the field "Override weight of Test assignment five" to "1"
172 And I set the field "Weight of Test assignment five" to "40"
173 And I press "Save changes"
174
175 Then I should not see "Your weights have been adjusted to total 100."
176 And the field "Weight of Test assignment five" matches value "40.00"
177 And the field "Weight of Test assignment six" matches value "60.000"
178 And the field "Weight of Test assignment seven" matches value "90.0"
179 And I follow "Reset weights of Sub category 1"
180 And the field "Weight of Test assignment five" matches value "66.667"
181 And the field "Weight of Test assignment six" matches value "33.333"
182 And the field "Weight of Test assignment seven" matches value "50.0"
183
184 @javascript
185 Scenario: The extra credit grade item weight is overridden to a figure over one hundred and then
186 the grade item is set to normal.
187
188 When I follow "Edit assign Test assignment seven"
189 And I set the field "Extra credit" to "1"
190 And I press "Save changes"
191 And I set the field "Override weight of Test assignment seven" to "1"
192 And I set the field "Weight of Test assignment seven" to "105"
193 And I press "Save changes"
194 Then I should not see "Your weights have been adjusted to total 100."
195 And the field "Weight of Test assignment five" matches value "66.667"
196 And the field "Weight of Test assignment six" matches value "33.333"
197 And the field "Weight of Test assignment seven" matches value "105.0"
198 And I follow "Edit assign Test assignment seven"
199 And I set the field "Extra credit" to "0"
200 And I press "Save changes"
201 And I should see "Your weights have been adjusted to total 100."
202
203 And the field "Weight of Test assignment five" matches value "32.52"
204 And the field "Weight of Test assignment six" matches value "16.26"
205 And the field "Weight of Test assignment seven" matches value "51.22"
206
207 @javascript
208 Scenario: The extra credit grade item weight is overridden to a figure over one hundred and then
209 the grade category is reset.
210
211 When I follow "Edit assign Test assignment seven"
212 And I set the field "Extra credit" to "1"
213 And I press "Save changes"
214 And I set the field "Override weight of Test assignment seven" to "1"
215 And I set the field "Weight of Test assignment seven" to "105"
216 And I press "Save changes"
217
218 And I follow "Reset weights of Sub category 1"
219 And the field "Weight of Test assignment five" matches value "66.667"
220 And the field "Weight of Test assignment six" matches value "33.333"
221 And the field "Weight of Test assignment seven" matches value "50.0"
222
223 @javascript
224 Scenario: Two out of three grade items weights are overridden and one is not.
225 The overridden grade item weights total over one hundred.
226
227 Given I set the field "Override weight of Test assignment six" to "1"
228 And I set the field "Override weight of Test assignment seven" to "1"
229 And I set the field "Weight of Test assignment six" to "55"
230 And I set the field "Weight of Test assignment seven" to "65"
231 And I press "Save changes"
232 And I should see "Your weights have been adjusted to total 100."
233
234 Then the field "Weight of Test assignment five" matches value "0.0"
235 And the field "Weight of Test assignment six" matches value "45.833"
236 And the field "Weight of Test assignment seven" matches value "54.167"
f70da024
AG
237
238 @javascript
239 Scenario: With one grade item set as extra credit, when I reset the weights for a category they return to the natural weights.
240
241 When I follow "Edit assign Test assignment five"
242 And I set the field "Extra credit" to "1"
243 And I press "Save changes"
244 And I set the field "Override weight of Test assignment six" to "1"
245 And I set the field "Override weight of Test assignment seven" to "1"
246 And I set the field "Weight of Test assignment six" to "55"
247 And I set the field "Weight of Test assignment seven" to "40"
248 And I press "Save changes"
249 And I follow "Reset weights of Sub category 1"
250 Then the field "Weight of Test assignment five" matches value "80.0"
251 And the field "Weight of Test assignment six" matches value "40.0"
252 And the field "Weight of Test assignment seven" matches value "60.0"