Skip to content

Commit 0023f38

Browse files
Use ResultRow DTO now that we have it
1 parent acb4e18 commit 0023f38

File tree

4 files changed

+29
-45
lines changed

4 files changed

+29
-45
lines changed

webapp/src/Command/CompareResultsCommand.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
namespace App\Command;
44

5-
use App\DataTransferObject\Result;
5+
use App\DataTransferObject\ResultRow;
66
use App\Service\Compare\ResultsCompareService;
77
use Symfony\Component\Console\Attribute\AsCommand;
88
use Symfony\Component\Serializer\SerializerInterface;
99

1010
/**
11-
* @extends AbstractCompareCommand<Result[]>
11+
* @extends AbstractCompareCommand<ResultRow[]>
1212
*/
1313
#[AsCommand(
1414
name: 'compare:results',

webapp/src/DataTransferObject/Result.php

Lines changed: 0 additions & 16 deletions
This file was deleted.

webapp/src/Service/Compare/ResultsCompareService.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
namespace App\Service\Compare;
44

5-
use App\DataTransferObject\Result;
5+
use App\DataTransferObject\ResultRow;
66
use Symfony\Component\Serializer\Encoder\CsvEncoder;
77

88
/**
9-
* @extends AbstractCompareService<Result[]>
9+
* @extends AbstractCompareService<ResultRow[]>
1010
*/
1111
class ResultsCompareService extends AbstractCompareService
1212
{
@@ -21,30 +21,30 @@ protected function parseFile(string $file)
2121
$resultsContents = substr($resultsContents, strpos($resultsContents, "\n") + 1);
2222

2323
// Prefix file with a fake header, so we can deserialize them
24-
$resultsContents = "team_id\trank\taward\tnum_solved\ttotal_time\tlast_time\tgroup_winner\n" . $resultsContents;
24+
$resultsContents = "team_id\trank\taward\tnum_solved\ttotal_time\ttime_of_last_submission\tgroup_winner\n" . $resultsContents;
2525

26-
$results = $this->serializer->deserialize($resultsContents, Result::class . '[]', 'csv', [
26+
$results = $this->serializer->deserialize($resultsContents, ResultRow::class . '[]', 'csv', [
2727
CsvEncoder::DELIMITER_KEY => "\t",
2828
]);
2929

3030
// Sort results: first by num_solved, then by total_time
3131
usort($results, fn(
32-
Result $a,
33-
Result $b
32+
ResultRow $a,
33+
ResultRow $b
3434
) => $a->numSolved === $b->numSolved ? $a->totalTime <=> $b->totalTime : $b->numSolved <=> $a->numSolved);
3535

3636
return $results;
3737
}
3838

3939
public function compare($object1, $object2): void
4040
{
41-
/** @var array<string,Result> $results1Indexed */
41+
/** @var array<string,ResultRow> $results1Indexed */
4242
$results1Indexed = [];
4343
foreach ($object1 as $result) {
4444
$results1Indexed[$result->teamId] = $result;
4545
}
4646

47-
/** @var array<string,Result> $results2Indexed */
47+
/** @var array<string,ResultRow> $results2Indexed */
4848
$results2Indexed = [];
4949
foreach ($object2 as $result) {
5050
$results2Indexed[$result->teamId] = $result;
@@ -67,8 +67,8 @@ public function compare($object1, $object2): void
6767
if ($result->totalTime !== $result2->totalTime) {
6868
$this->addMessage(MessageType::ERROR, sprintf('Team "%s" has different total time', $result->teamId), (string)$result->totalTime, (string)$result2->totalTime);
6969
}
70-
if ($result->lastTime !== $result2->lastTime) {
71-
$this->addMessage(MessageType::ERROR, sprintf('Team "%s" has different last time', $result->teamId), (string)$result->lastTime, (string)$result2->lastTime);
70+
if ($result->timeOfLastSubmission !== $result2->timeOfLastSubmission) {
71+
$this->addMessage(MessageType::ERROR, sprintf('Team "%s" has different last time', $result->teamId), (string)$result->timeOfLastSubmission, (string)$result2->timeOfLastSubmission);
7272
}
7373
if ($result->groupWinner !== $result2->groupWinner) {
7474
$this->addMessage(MessageType::WARNING, sprintf('Team "%s" has different group winner', $result->teamId), (string)$result->groupWinner, (string)$result2->groupWinner);

webapp/tests/Unit/Service/Compare/ResultsCompareServiceTest.php

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace App\Tests\Unit\Service\Compare;
44

5-
use App\DataTransferObject\Result;
5+
use App\DataTransferObject\ResultRow;
66
use App\Service\Compare\Message;
77
use App\Service\Compare\MessageType;
88
use App\Service\Compare\ResultsCompareService;
@@ -13,8 +13,8 @@
1313
class ResultsCompareServiceTest extends KernelTestCase
1414
{
1515
/**
16-
* @param Result[] $results1
17-
* @param Result[] $results2
16+
* @param ResultRow[] $results1
17+
* @param ResultRow[] $results2
1818
* @param Message[] $expectedMessages
1919
*
2020
* @dataProvider provideCompare
@@ -34,43 +34,43 @@ public function provideCompare(): Generator
3434
{
3535
yield [[], [], []];
3636
yield [
37-
[new Result('team1', 1, '', 0, 0, 0)],
37+
[new ResultRow('team1', 1, '', 0, 0, 0)],
3838
[],
3939
[new Message(MessageType::ERROR, 'Team "team1" not found in second file', null, null)],
4040
];
4141
yield [
4242
[],
43-
[new Result('team2', 1, '', 0, 0, 0)],
43+
[new ResultRow('team2', 1, '', 0, 0, 0)],
4444
[new Message(MessageType::ERROR, 'Team "team2" not found in first file', null, null)],
4545
];
4646
yield [
47-
[new Result('team3', 1, '', 0, 0, 0)],
48-
[new Result('team3', 2, '', 0, 0, 0)],
47+
[new ResultRow('team3', 1, '', 0, 0, 0)],
48+
[new ResultRow('team3', 2, '', 0, 0, 0)],
4949
[new Message(MessageType::ERROR, 'Team "team3" has different rank', '1', '2')],
5050
];
5151
yield [
52-
[new Result('team4', 1, 'award1', 0, 0, 0)],
53-
[new Result('team4', 1, 'award2', 0, 0, 0)],
52+
[new ResultRow('team4', 1, 'award1', 0, 0, 0)],
53+
[new ResultRow('team4', 1, 'award2', 0, 0, 0)],
5454
[new Message(MessageType::ERROR, 'Team "team4" has different award', 'award1', 'award2')],
5555
];
5656
yield [
57-
[new Result('team5', 1, 'award3', 1, 0, 0)],
58-
[new Result('team5', 1, 'award3', 2, 0, 0)],
57+
[new ResultRow('team5', 1, 'award3', 1, 0, 0)],
58+
[new ResultRow('team5', 1, 'award3', 2, 0, 0)],
5959
[new Message(MessageType::ERROR, 'Team "team5" has different num solved', '1', '2')],
6060
];
6161
yield [
62-
[new Result('team6', 1, 'award4', 1, 100, 0)],
63-
[new Result('team6', 1, 'award4', 1, 200, 0)],
62+
[new ResultRow('team6', 1, 'award4', 1, 100, 0)],
63+
[new ResultRow('team6', 1, 'award4', 1, 200, 0)],
6464
[new Message(MessageType::ERROR, 'Team "team6" has different total time', '100', '200')],
6565
];
6666
yield [
67-
[new Result('team7', 1, 'award4', 1, 100, 10)],
68-
[new Result('team7', 1, 'award4', 1, 100, 20)],
67+
[new ResultRow('team7', 1, 'award4', 1, 100, 10)],
68+
[new ResultRow('team7', 1, 'award4', 1, 100, 20)],
6969
[new Message(MessageType::ERROR, 'Team "team7" has different last time', '10', '20')],
7070
];
7171
yield [
72-
[new Result('team8', 1, 'award4', 1, 100, 10, 'winner1')],
73-
[new Result('team8', 1, 'award4', 1, 100, 10, 'winner2')],
72+
[new ResultRow('team8', 1, 'award4', 1, 100, 10, 'winner1')],
73+
[new ResultRow('team8', 1, 'award4', 1, 100, 10, 'winner2')],
7474
[new Message(MessageType::WARNING, 'Team "team8" has different group winner', 'winner1', 'winner2')],
7575
];
7676
}

0 commit comments

Comments
 (0)