ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ExcPeerReviewTest.php
Go to the documentation of this file.
1<?php
2
19use PHPUnit\Framework\TestCase;
20
26class ExcPeerReviewTest extends TestCase
27{
28 protected function tearDown(): void
29 {
30 }
31
32 protected function getDistribution($user_ids, $num_assignments): \ILIAS\Exercise\PeerReview\ExcPeerReviewDistribution
33 {
34 return new \ILIAS\Exercise\PeerReview\ExcPeerReviewDistribution($user_ids, $num_assignments);
35 }
36
40 public function testDistributionNumberOfPeers(): void
41 {
42 $user_ids = [100,200,300,400,500];
43 $num_assignments = 3;
44
45 $distribution = $this->getDistribution($user_ids, $num_assignments);
46
47 foreach ($user_ids as $user_id) {
48 $this->assertEquals(count($distribution->getPeersOfRater($user_id)), $num_assignments);
49 }
50 }
51
55 public function testDistributionNumberOfRaters(): void
56 {
57 $user_ids = [10,20,30,40,50];
58 $num_assignments = 4;
59
60 $distribution = $this->getDistribution($user_ids, $num_assignments);
61
62 $peer_raters = [];
63 foreach ($user_ids as $user_id) {
64 foreach ($distribution->getPeersOfRater($user_id) as $peer) {
65 $peer_raters[$peer][$user_id] = $user_id;
66 }
67 }
68
69 $this->assertSameSize($peer_raters, $user_ids);
70
71 foreach ($peer_raters as $raters) {
72 $this->assertEquals(count($raters), $num_assignments);
73 }
74 }
75
79 public function testDistributionNoSelfAssignment(): void
80 {
81 $user_ids = [10,20,30,40,50];
82 $num_assignments = 4;
83
84 $distribution = $this->getDistribution($user_ids, $num_assignments);
85
86 foreach ($user_ids as $user_id) {
87 foreach ($distribution->getPeersOfRater($user_id) as $peer) {
88 $this->assertNotEquals($user_id, $peer);
89 }
90 }
91 }
92}
Test peer reviews.
testDistributionNumberOfPeers()
Test if each rater has $num_assignments peers.
getDistribution($user_ids, $num_assignments)
testDistributionNumberOfRaters()
Test if each peer is assigned to $num_assignments raters.
testDistributionNoSelfAssignment()
Test if raters are not assigned as peers to themselves.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.