Skip to content

Commit da32d17

Browse files
committed
Simplify with iterable, fix test
1 parent ef233f9 commit da32d17

File tree

3 files changed

+21
-28
lines changed

3 files changed

+21
-28
lines changed

src/CSVArray.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,13 @@ public static function toArray(string $csv, string $delimiter = ';', string $enc
4646
return $result;
4747
}
4848

49-
/** @param array<array<string, CSVPrimitive>> $data */
50-
public static function toCSV(array $data, string $delimiter = ';', string $lineSeparator = "\r\n"): string
49+
/** @param iterable<array<string, CSVPrimitive>> $data */
50+
public static function toCSV(iterable $data, string $delimiter = ';', string $lineSeparator = "\r\n"): string
5151
{
52-
if ($data === []) {
53-
throw new \Exception('Array is empty');
54-
}
55-
5652
// Use the keys of the array as the headers of the CSV
5753
$headerItem = Arr::first($data);
58-
if (! is_array($headerItem)) {
59-
throw new \Exception('Missing column headers.');
54+
if ($headerItem === null) {
55+
throw new \Exception('Missing data.');
6056
}
6157
$headerKeys = array_keys($headerItem);
6258

src/LightcyclerSampleSheet/AbsoluteQuantificationSheet.php

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,10 @@ public function generate(Collection $samples): string
1212
{
1313
$replicationMapping = $this->calculateReplicationMapping($samples);
1414

15-
$data = $samples
16-
->map(fn (AbsoluteQuantificationSample $well, string $coordinateFromKey): array => $well->toSerializableArray(
17-
$coordinateFromKey,
18-
$replicationMapping[$coordinateFromKey]
19-
))
20-
->values()
21-
->all();
15+
$data = $samples->map(fn (AbsoluteQuantificationSample $well, string $coordinateFromKey): array => $well->toSerializableArray(
16+
$coordinateFromKey,
17+
$replicationMapping[$coordinateFromKey]
18+
));
2219

2320
return CSVArray::toCSV($data, "\t");
2421
}

tests/LightcyclerSampleSheet/AbsoluteQuantificationSheetTest.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@ public function testGenerateWithFakeData(): void
3131
$result = $sheet->generate($samples);
3232

3333
$expected = <<<EOT
34-
"General:Pos"\t"General:Sample Name"\t"General:Repl. Of"\t"General:Filt. Comb."\t"Sample Preferences:Color"\t"Abs Quant:Sample Type"\t"Abs Quant:Concentration"
35-
A1\t"Standard_1"\tA1\t485-520\t$00FF0000\t"Standard"\t1.00E3
36-
B1\t"Standard_1"\tA1\t485-520\t$00FF0001\t"Standard"\t1.00E3
37-
C1\t"Standard_2"\tC1\t485-520\t$0000FF00\t"Standard"\t1.00E2
38-
D1\t"Standard_2"\tC1\t485-520\t$0000FF01\t"Standard"\t1.00E2
39-
E1\t"Sample_001"\tE1\t485-520\t$000000FF\t"Unknown"\t
40-
F1\t"Sample_001"\tE1\t485-520\t$000000FE\t"Unknown"\t
41-
G1\t"Sample_002"\tG1\t485-520\t$00FFFF00\t"Unknown"\t
42-
H1\t"Sample_002"\tG1\t485-520\t$00FFFF01\t"Unknown"\t
43-
A2\t"NTC"\tA2\t485-520\t$00000000\t"Negative Control"\t
44-
B2\t"NTC"\tA2\t485-520\t$00000001\t"Negative Control"\t
45-
C2\t"Standard_1"\tC2\t485-520\t$00FF0000\t"Standard"\t1.00E3
46-
D2\t"Standard_1"\tC2\t485-520\t$00FF0001\t"Standard"\t1.00E3
34+
General:Pos\t"General:Sample Name"\t"General:Repl. Of"\t"General:Filt. Comb."\t"Sample Preferences:Color"\t"Abs Quant:Sample Type"\t"Abs Quant:Concentration"
35+
A1\tStandard_1\tA1\t485-520\t$00FF0000\tStandard\t1.00E3
36+
B1\tStandard_1\tA1\t485-520\t$00FF0001\tStandard\t1.00E3
37+
C1\tStandard_2\tC1\t485-520\t$0000FF00\tStandard\t1.00E2
38+
D1\tStandard_2\tC1\t485-520\t$0000FF01\tStandard\t1.00E2
39+
E1\tSample_001\tE1\t485-520\t$000000FF\tUnknown\t
40+
F1\tSample_001\tE1\t485-520\t$000000FE\tUnknown\t
41+
G1\tSample_002\tG1\t485-520\t$00FFFF00\tUnknown\t
42+
H1\tSample_002\tG1\t485-520\t$00FFFF01\tUnknown\t
43+
A2\tNTC\tA2\t485-520\t$00000000\t"Negative Control"\t
44+
B2\tNTC\tA2\t485-520\t$00000001\t"Negative Control"\t
45+
C2\tStandard_1\tC2\t485-520\t$00FF0000\tStandard\t1.00E3
46+
D2\tStandard_1\tC2\t485-520\t$00FF0001\tStandard\t1.00E3
4747
4848
EOT;
4949

0 commit comments

Comments
 (0)