ILIAS  trunk Revision v11.0_alpha-1749-g1a06bdef097
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
assFormulaQuestionTest Class Reference

Unit tests. More...

+ Inheritance diagram for assFormulaQuestionTest:
+ Collaboration diagram for assFormulaQuestionTest:

Public Member Functions

 testSimpleRatedFormulaQuestionCalculations ()
 simpleRatedCalculationsData More...
 

Static Public Member Functions

static simpleRatedCalculationsData ()
 

Protected Member Functions

 setUp ()
 
- Protected Member Functions inherited from assBaseTestCase
 setUp ()
 
 tearDown ()
 
 getIRSSMock ()
 

Protected Attributes

 $backupGlobals = false
 
Container $backup_dic
 
- Protected Attributes inherited from assBaseTestCase
Container $dic = null
 

Detailed Description

Unit tests.

Author
Maximilian Becker mbeck.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de

\

Definition at line 29 of file assFormulaQuestionTest.php.

Member Function Documentation

◆ setUp()

assFormulaQuestionTest::setUp ( )
protected

Definition at line 34 of file assFormulaQuestionTest.php.

References $lng.

34  : void
35  {
36  parent::setUp();
37  $lng = $this->getMockBuilder(\ilLanguage::class)
38  ->disableOriginalConstructor()
39  ->getMock();
40  $lng->method('txt')
41  ->will($this->returnArgument(0));
42 
43  $this->setGlobalVariable('lng', $lng);
44  }
global $lng
Definition: privfeed.php:31

◆ simpleRatedCalculationsData()

static assFormulaQuestionTest::simpleRatedCalculationsData ( )
static

Definition at line 68 of file assFormulaQuestionTest.php.

References $results, null, assFormulaQuestionResult\RESULT_CO_FRAC, assFormulaQuestionResult\RESULT_DEC, assFormulaQuestionResult\RESULT_FRAC, and assFormulaQuestionResult\RESULT_NO_SELECTION.

68  : array
69  {
70  $points = 5;
71  $precision = 2;
72 
73  $meter = new assFormulaQuestionUnit();
74  $meter->initFormArray([
75  'unit_id' => 1,
76  'category' => 1,
77  'sequence' => 1,
78  'unit' => 'Meter',
79  'factor' => 1,
80  'baseunit_fi' => -1,
81  'baseunit_title' => '',
82  ]);
83 
84  $centimeter = new assFormulaQuestionUnit();
85  $centimeter->initFormArray([
86  'unit_id' => 2,
87  'category' => 1,
88  'sequence' => 2,
89  'unit' => 'Centimeter',
90  'factor' => 0.01,
91  'baseunit_fi' => 1,
92  'baseunit_title' => 'Meter',
93  ]);
94 
95  $newtonmetre = new assFormulaQuestionUnit();
96  $newtonmetre->initFormArray([
97  'unit_id' => 3,
98  'category' => 1,
99  'sequence' => 3,
100  'unit' => 'Newton Metre',
101  'factor' => 1,
102  'baseunit_fi' => -1,
103  'baseunit_title' => '',
104  ]);
105 
106  $newtoncentimeter = new assFormulaQuestionUnit();
107  $newtoncentimeter->initFormArray([
108  'unit_id' => 4,
109  'category' => 1,
110  'sequence' => 4,
111  'unit' => 'Newton Centimeter',
112  'factor' => 0.01,
113  'baseunit_fi' => 3,
114  'baseunit_title' => 'Newton Metre',
115  ]);
116 
117  $v1 = new assFormulaQuestionVariable('$v1', 1, 20, $newtonmetre, 1);
118  $v2 = new assFormulaQuestionVariable('$v2', 1, 10, $centimeter, 1);
119  $v1->setValue(19.6);
120  $v1->setIntprecision(1);
121  $v2->setValue(6.6);
122  $v2->setIntprecision(1);
123 
124  $v3 = clone $v1;
125  $v4 = clone $v2;
126  $v3->setUnit(null);
127  $v3->setVariable('$v3');
128  $v4->setUnit(null);
129  $v4->setVariable('$v4');
130 
131  $r1 = new assFormulaQuestionResult(
132  '$r1',
133  0,
134  0,
135  0,
136  $newtoncentimeter,
137  '$v1 * $v2',
138  $points,
139  $precision,
140  true,
141  33,
142  34,
143  33,
145  );
146  $r2 = new assFormulaQuestionResult(
147  '$r2',
148  0,
149  0,
150  0,
151  $newtonmetre,
152  '$v1 * $v2',
153  $points,
154  $precision,
155  true,
156  33,
157  34,
158  33,
160  );
161  $r3 = new assFormulaQuestionResult(
162  '$r3',
163  0,
164  0,
165  0,
166  null,
167  '$v1 * $v2',
168  $points,
169  $precision,
170  true,
171  33,
172  34,
173  33,
175  );
176  $r4 = new assFormulaQuestionResult(
177  '$r4',
178  0,
179  0,
180  0,
181  null,
182  '$v1 * $v2',
183  $points,
184  $precision,
185  true,
186  33,
187  34,
188  33,
190  );
191  $r5 = new assFormulaQuestionResult(
192  '$r5',
193  0,
194  0,
195  0,
196  null,
197  '$v1 * $v2',
198  $points,
199  $precision,
200  true,
201  33,
202  34,
203  33,
205  );
206  $r6 = new assFormulaQuestionResult(
207  '$r6',
208  0,
209  0,
210  0,
211  null,
212  '$v3 * $v4',
213  $points,
214  $precision,
215  true,
216  33,
217  34,
218  33,
220  );
221 
222  // RESULT_FRAC
223  $v5 = new assFormulaQuestionVariable('$v5', 1, 20, null, 1);
224  $v6 = new assFormulaQuestionVariable('$v6', 1, 10, null, 1);
225  $v5->setValue(1);
226  $v6->setValue(3);
227 
228  $v7 = new assFormulaQuestionVariable('$v7', 1, 20, null, 1);
229  $v8 = new assFormulaQuestionVariable('$v8', 1, 10, null, 1);
230  $v7->setValue(2);
231  $v8->setValue(4);
232 
233  $r7 = new assFormulaQuestionResult(
234  '$r7',
235  0,
236  0,
237  0,
238  null,
239  '$v5/$v6',
240  $points,
241  $precision,
242  true,
243  33,
244  34,
245  33,
247  );
248 
249  $r8 = new assFormulaQuestionResult(
250  '$r8',
251  0,
252  0,
253  0,
254  null,
255  '$v7/$v8',
256  $points,
257  $precision,
258  true,
259  33,
260  34,
261  33,
263  );
264 
265  // RESULT_CO_FRAC
266  $v9 = clone $v7;
267  $v9->setVariable('$v9');
268  $v10 = clone $v8;
269  $v10->setVariable('$v10');
270 
271  $v11 = clone $v7;
272  $v11->setVariable('$v11');
273  $v12 = clone $v8;
274  $v12->setVariable('$v12');
275 
276  $r9 = new assFormulaQuestionResult(
277  '$r9',
278  0,
279  0,
280  0,
281  null,
282  '$v9/$v10',
283  $points,
284  $precision,
285  true,
286  33,
287  34,
288  33,
290  );
291 
292  $r10 = new assFormulaQuestionResult(
293  '$r10',
294  0,
295  0,
296  0,
297  null,
298  '$v11/$v12',
299  $points,
300  $precision,
301  true,
302  33,
303  34,
304  33,
306  );
307 
308  // RESULT_NO_SELECTION
309  $v13 = new assFormulaQuestionVariable('$v13', 1, 20, null, 1);
310  $v14 = new assFormulaQuestionVariable('$v14', 1, 10, null, 1);
311  $v13->setValue(1);
312  $v14->setValue(3);
313  $r11 = new assFormulaQuestionResult(
314  '$r11',
315  0,
316  0,
317  0,
318  null,
319  '$v13/$v14',
320  $points,
321  $precision,
322  true,
323  33,
324  34,
325  33,
327  );
328 
329  $v15 = new assFormulaQuestionVariable('$v15', 200, 800, null, 0);
330  $v16 = new assFormulaQuestionVariable('$v16', 50, 250, null, 0);
331  $v17 = new assFormulaQuestionVariable('$v17', 3, 18, null, 0);
332  $v15->setIntprecision(25);
333  $v16->setIntprecision(5);
334  $v17->setIntprecision(1);
335  $v15->setValue(225);
336  $v16->setValue(85);
337  $v17->setValue(10);
338  $r12 = new assFormulaQuestionResult(
339  '$r12',
340  0,
341  0,
342  0,
343  null,
344  '1/(2*pi)*sqrt($v16*1000/$v15)+$v17-$v17',
345  $points,
346  1,
347  true,
348  33,
349  34,
350  33,
352  );
353  $r13 = new assFormulaQuestionResult(
354  '$r12',
355  0,
356  0,
357  0,
358  null,
359  '1/(2*pi)*sqrt($v16*1000/$v15)+$v17-$v17',
360  $points,
361  2,
362  true,
363  33,
364  34,
365  33,
367  );
368  $r14 = new assFormulaQuestionResult(
369  '$r11',
370  0,
371  0,
372  0,
373  null,
374  '$v7/$v14',
375  $points,
376  $precision,
377  true,
378  33,
379  34,
380  33,
382  );
383 
384  $variables = [
385  $v1->getVariable() => $v1,
386  $v2->getVariable() => $v2,
387  $v3->getVariable() => $v3,
388  $v4->getVariable() => $v4,
389  $v5->getVariable() => $v5,
390  $v6->getVariable() => $v6,
391  $v7->getVariable() => $v7,
392  $v8->getVariable() => $v8,
393  $v9->getVariable() => $v9,
394  $v10->getVariable() => $v10,
395  $v11->getVariable() => $v11,
396  $v12->getVariable() => $v12,
397  $v13->getVariable() => $v13,
398  $v14->getVariable() => $v14,
399  $v15->getVariable() => $v15,
400  $v16->getVariable() => $v16,
401  $v17->getVariable() => $v17,
402  ];
403 
404  $results = [
405  $r1->getResult() => $r1,
406  $r2->getResult() => $r2,
407  $r3->getResult() => $r3,
408  $r4->getResult() => $r4,
409  $r5->getResult() => $r5,
410  $r6->getResult() => $r6,
411  $r7->getResult() => $r7,
412  $r8->getResult() => $r8,
413  $r9->getResult() => $r9,
414  $r10->getResult() => $r10,
415  $r11->getResult() => $r11,
416  $r12->getResult() => $r12,
417  $r13->getResult() => $r13,
418  $r14->getResult() => $r14,
419  ];
420 
421  return [
422  //result, all variables, all results, user solution, unit chosen by user for solution
423  [$r1, $variables, $results, '129.36', $newtoncentimeter, true],
424  [$r2, $variables, $results, '1.29', $newtonmetre, true],
425  [$r3, $variables, $results, '1.29', $newtonmetre, true],
426  [$r4, $variables, $results, '129.36', $newtoncentimeter, true],
427  [$r5, $variables, $results, '1.29', null, true],
428  [$r6, $variables, $results, '129.36', null, true],
429  // RESULT_FRAC
430  [$r7, $variables, $results, '1/3', null, true],
431  [$r8, $variables, $results, '4/8', null, true],
432  // RESULT_CO_FRAC
433  [$r9, $variables, $results, '1/2', null, true],
434  [$r10, $variables, $results, '4/8', null, false],
435  // RESULT_NO_SELECTION
436  [$r11, $variables, $results, '1/3', null, true],
437  [$r14, $variables, $results, '0.67', null, true],
438  [$r14, $variables, $results, '0.66666', null, true],
439  [$r14, $variables, $results, '0.7', null, false],
440  [$r14, $variables, $results, '2/3', null, true],
441  // Test for #22381
442  [$r12, $variables, $results, '3.1', null, true],
443  [$r13, $variables, $results, '3.09', null, true],
444  [$r13, $variables, $results, '3.1', null, false],
445  ];
446  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$results

◆ testSimpleRatedFormulaQuestionCalculations()

assFormulaQuestionTest::testSimpleRatedFormulaQuestionCalculations ( )

simpleRatedCalculationsData

Parameters
assFormulaQuestionResult$result
assFormulaQuestionVariable[]$variables
assFormulaQuestionUnit[]$results
string$userResult
assFormulaQuestionUnit | null$userResultUnit
bool$expectedResult

Definition at line 55 of file assFormulaQuestionTest.php.

References $results.

62  : void {
63  $this->markTestSkipped('Data Provider needs to be revisited.');
64  $isCorrect = $result->isCorrect($variables, $results, $userResult, $userResultUnit);
65  $this->assertEquals($expectedResult, $isCorrect);
66  }
$results

Field Documentation

◆ $backup_dic

Container assFormulaQuestionTest::$backup_dic
protected

Definition at line 32 of file assFormulaQuestionTest.php.

◆ $backupGlobals

assFormulaQuestionTest::$backupGlobals = false
protected

Definition at line 31 of file assFormulaQuestionTest.php.


The documentation for this class was generated from the following file: