| 48 | // [ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ] ] |
| 49 | // ] |
| 50 | function writeSequences( |
| 51 | length: number, |
| 52 | start?: number, |
| 53 | sequence?: Array<Array<number>> |
| 54 | ): Array<Array<Array<number>>> { |
| 55 | if (start === undefined) { |
| 56 | start = 0; |
| 57 | sequence = []; |
| 58 | } else if (start === length) { |
| 59 | return [sequence!]; |
| 60 | } |
| 61 | let sequences: Array<Array<Array<number>>> = []; |
| 62 | for (let end = length; end > start; end--) { |
| 63 | const subSequence = sequence!.concat([[start, end]]); |
| 64 | const subSequences = writeSequences(length, end, subSequence); |
| 65 | sequences = sequences.concat(subSequences); |
| 66 | } |
| 67 | return sequences; |
| 68 | } |
| 69 | |
| 70 | it("utf8", () => { |
| 71 | testDecode("utf-8", Buffer.from("$", "utf-8"), "$"); |