public function testExtract() { $string = new Str('abcdefgh'); $sub = $string->extract(1); $this->isInstanceOf(Str::class, $sub); $this->assertEquals('bcdefgh', $sub->getInternalValue()); $sub = $string->extract(1, 1); $this->isInstanceOf(Str::class, $sub); $this->assertEquals('b', $sub->getInternalValue()); $sub = $string->extract(1, -1); $this->isInstanceOf(Str::class, $sub); $this->assertEquals('bcdefg', $sub->getInternalValue()); // with accented charcaters $string = new Str('chaîne accentuée'); $sub = $string->extract(3, 1); $this->isInstanceOf(Str::class, $sub); $this->assertEquals('î', $sub->getInternalValue()); }