public function testCrop() { // same as extract(), but amend internal value instead of returning a new string $string = new Str('abcdefgh'); $fluent = $string->crop(1); $this->assertSame($string, $fluent); $this->assertEquals('bcdefgh', $string); $string->crop(1, -1); $this->assertEquals('cdefg', $string); $string->crop(1, 1); $this->assertEquals('d', $string); // with accented charcaters $string = new Str('chaîne accentuée'); $string->crop(3, 1); $this->assertEquals('î', $string); }