\r0302Salut"); self::assertSame([12, false, 5, 'Toto> ', false], [$segments[0]['size'], $segments[0]['bold'], $segments[0]['color'], $segments[0]['text'], $segments[0]['smileys']]); self::assertSame([16, 2, 'Salut', true], [$segments[1]['size'], $segments[1]['color'], $segments[1]['text'], $segments[1]['smileys']]); self::assertTrue(Styled::segments('0500gras')[0]['bold']); self::assertSame('Toto> Salut', Styled::plain("-105Toto> \r0302Salut")); } public function testTheRainbowGivesEachLetterTheNextColour(): void { $line = Styled::spread('0111ab c', static fn (int $n) => 0); self::assertSame("0103a\r0109b\r0100 \r0107c", $line); } public function testTheRainbowAndTheWaveKeepTheSmileysWhole(): void { self::assertSame("0103a\r0100 \r0109:-)\r0100 \r0107#13\r0106@05", Styled::spread('0111a :-) #13@05', static fn (int $n) => 0)); $segments = Styled::segments(Styled::spread('0302ok ;-)', static fn (int $n) => 0)); self::assertSame(';-)', end($segments)['text']); } public function testTheWaveChangesTheSizeEveryTwoLetters(): void { $line = Styled::spread('0302abcde', static fn (int $n) => 0); self::assertSame("0002a\r0002b\r0102c\r0102d\r0202e", $line); } public function testAPlainLineIsLeftAsItIs(): void { self::assertSame('0102texte', Styled::spread('0102texte')); } }