19declare(strict_types=1);
21use PHPUnit\Framework\TestCase;
29 protected function setUp(): void
33 100 => [400, 401, 402, 403],
35 102 => [400, 402, 404],
38 $this->positions =
new Positions($user_questions, [], []);
43 $this->assertInstanceOf(Positions::class, $this->positions);
44 $this->assertEquals([], $this->positions->getAllQuestionProperties());
45 $this->assertEquals([], $this->positions->getAllAttempts());
51 ConsecutiveScoringMode::ORIENTATION_USER,
52 ConsecutiveScoringMode::MODE_ALL_AT_ONCE,
55 [[100],[400, 401, 402, 403]],
57 [[102],[400, 402, 404]],
60 $this->assertEquals($expected, $this->positions->get($mode));
66 ConsecutiveScoringMode::ORIENTATION_QUESTION,
67 ConsecutiveScoringMode::MODE_ALL_AT_ONCE,
73 [[100, 101, 103],[403]],
76 $this->assertEquals($expected, $this->positions->get($mode));
82 ConsecutiveScoringMode::ORIENTATION_USER,
83 ConsecutiveScoringMode::MODE_ONE_BY_ONE,
97 $this->assertEquals($expected, $this->positions->get($mode));
103 ConsecutiveScoringMode::ORIENTATION_QUESTION,
104 ConsecutiveScoringMode::MODE_ONE_BY_ONE,
118 $this->assertEquals($expected, $this->positions->get($mode));
124 ConsecutiveScoringMode::ORIENTATION_QUESTION,
125 ConsecutiveScoringMode::MODE_ONE_BY_ONE,
128 $filter_users =
static fn(array $uids, array $qids): array => [
129 array_intersect($uids, [100, 102]),
132 $filter_questions =
static fn(array $uids, array $qids): array => [
134 array_intersect($qids, [400, 402, 404]),
applyFilters(\Closure ... $filters)
get(ConsecutiveScoringMode $mode)
testPositionsModeSingleByQuestion()
testPositionsModeAllByUsers()
testPositionsModeSingleByUser()
testPositionsModeAllByQuestion()