<?php

use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    public function testCodeCoverage(): void
    {
        $arr = $this->arrayBuild();
        $this->assertCount(6, $arr);
        $this->assertEquals(0, $arr[0]['num']);
        $this->assertEquals(1, $arr[1]['num']);
        $this->assertEquals(2, $arr[2]['num']);
        $this->assertEquals(42, $arr['string-index']['num']);
        $this->assertEquals('b', $arr['string-index']['sub']['a']);
        $this->assertEquals('scalar', $arr['multiline-scalar-1']);
        $this->assertEquals('scalar', $arr['multiline-scalar-2']);
    }

    protected function arrayBuild(): array
    {
        $arr = [];
        // Append to array.
        $arr[] = [
            'num' => 0,
        ];
        for ($i = 1; $i < 3; $i++) {
            $arr[] = [
                'num' => $i,
            ];
        }
        // Explicit index.
        list($a, $c, $e) = ['b', 'd', 'f'];
        $arr['string-index'] = [
            'num' => 42,
            'sub' => [
                'a' => $a,
                'c' => $c,
                'e' => $e,
            ],
        ];
        // Multi-line assignment
        $arr['multiline-scalar-1']
            = $arr['multiline-scalar-2']
            = 'scalar';
        return $arr;
    }
}
