public function testReplaceSlice() { $this->eq(s::replaceSlice('abcdef', 'x', 2, 4), 'abxef'); $this->eq(s::replaceSlice('abcdef', 'x', 2), 'abx'); $this->eq(s::replaceSlice('abcdef', 'x', 2, 1000), 'abx'); $this->eq(s::replaceSlice('abcdef', 'x', 1000), 'abcdefx'); $this->eq(s::replaceSlice('abcdef', 'x', 1000, 1003), 'abcdefx'); $this->eq(s::replaceSlice('abcdef', 'x', 1000, 3), 'abcdefx'); $this->eq(s::replaceSlice('abcdef', 'x', 2, 2), 'abxcdef'); $this->eq(s::replaceSlice('abcdef', 'x', -2), 'abcdx'); $this->eq(s::replaceSlice('abcdef', 'x', -4, 4), 'abxef'); $this->eq(s::replaceSlice('abcdef', 'x', -1000), 'x'); $this->eq(s::replaceSlice('abcdef', 'x', -1000, -100), 'xabcdef'); $this->eq(s::replaceSlice('abcdef', 'x', -7, -4), 'xcdef'); $this->eq(s::replaceSlice('', 'x', 2, 4), 'x'); }
public function replaceSlice($new, $i, $j = null) { return new self(s::replaceSlice($this->value, self::unwrap($new), $i, $j)); }