public function testSlicing() { $str = new Text('let it go'); // $this->assertEquals('let', $str->slice(0, 3)); // $this->assertEquals('it', $str->slice(4, 2)); // $this->assertEquals(new Text(''), $str->slice(5, 0)); // $this->assertEquals('it go', $str->slice(4)); // TODO: Negative values for slice - what behavior should it be? $this->assertEquals('it go', $str->subString(4)); $this->assertEquals('let', $str->subString(0, 3)); $this->assertEquals('it', $str->subString(4, 6)); $this->assertEquals('et it g', $str->subString(1, -1)); $this->assertEquals('g', $str->subString(7, -1)); }