segments(str_repeat('а', 70)))->toBe(1); }); it('71 символ — уже два сегмента', function () { expect((new SmsSegmentCalculator)->segments(str_repeat('а', 71)))->toBe(2); }); it('134 символа — два сегмента, 135 — три', function () { $calc = new SmsSegmentCalculator; expect($calc->segments(str_repeat('а', 134)))->toBe(2) ->and($calc->segments(str_repeat('а', 135)))->toBe(3); }); it('пустой текст — один сегмент, а не ноль', function () { expect((new SmsSegmentCalculator)->segments(''))->toBe(1); }); it('считает кириллицу посимвольно, а не побайтово', function () { // «привет» — 6 символов, но 12 байт. Побайтовый счёт дал бы неверный результат. expect((new SmsSegmentCalculator)->segments(str_repeat('привет', 11)))->toBe(1); });