mirror of
https://github.com/seigler/rockstar-playground
synced 2025-07-27 01:36:10 +00:00
running rockstar on input
This commit is contained in:
commit
0f5c35af68
24 changed files with 536 additions and 0 deletions
132
node_modules/n-readlines/test/readlines.test.js
generated
vendored
Normal file
132
node_modules/n-readlines/test/readlines.test.js
generated
vendored
Normal file
|
@ -0,0 +1,132 @@
|
|||
'use strict';
|
||||
|
||||
const lineByLine = require('../readlines.js');
|
||||
const path = require('path');
|
||||
const test = require('tape');
|
||||
|
||||
test('should get all lines', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/twoLineFile.txt'));
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'hello', 'line 0: hello');
|
||||
t.equals(liner.next().toString('ascii'), 'hello2', 'line 1: hello2');
|
||||
t.equals(liner.next(), false, 'line 3: false');
|
||||
t.equals(liner.next(), false, 'line 4: false');
|
||||
t.equals(liner.fd, null, 'fd null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should get all lines even if the file doesnt end with new line', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/badEndFile.txt'));
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com');
|
||||
t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com');
|
||||
t.equals(liner.next(), false, 'line 3: false');
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should get all lines if there is no new lines', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/noNewLinesFile.txt'));
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'no new line', 'line 0: no new line');
|
||||
t.equals(liner.next(), false, 'line 1: false');
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should handle empty files', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/emptyFile.txt'));
|
||||
|
||||
t.equals(liner.next(), false, 'line 0: false');
|
||||
t.equals(liner.fd, null, 'line 0: false');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should read right between two chunks', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/normalFile.txt'), {
|
||||
readChunk: 16
|
||||
});
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com');
|
||||
t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com');
|
||||
t.equals(liner.next().toString('ascii'), 'yandex.ru', 'line 2: yandex.ru');
|
||||
t.equals(liner.next(), false, 'line 3: false');
|
||||
t.equals(liner.fd, null, 'fs is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should read empty lines', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/withEmptyLines.txt'));
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'hello', 'line 0: hello');
|
||||
t.equals(liner.next().toString('ascii'), 'hello4', 'line 1: hello4');
|
||||
t.equals(liner.next().toString('ascii'), '', 'line 2: ');
|
||||
t.equals(liner.next().toString('ascii'), 'hello2', 'line 3: hello2');
|
||||
t.equals(liner.next().toString('ascii'), 'hello3', 'line 4: hello3');
|
||||
t.equals(liner.next(), false, 'line 5: false');
|
||||
t.equals(liner.fd, null, 'fs is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should reset and start from the beggining', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/normalFile.txt'), {
|
||||
readChunk: 16
|
||||
});
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com');
|
||||
t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com');
|
||||
|
||||
liner.reset()
|
||||
|
||||
t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com');
|
||||
t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com');
|
||||
t.equals(liner.next().toString('ascii'), 'yandex.ru', 'line 2: yandex.ru');
|
||||
t.equals(liner.next(), false, 'line 3: false');
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should read big lines', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/bigLines.json'));
|
||||
|
||||
|
||||
t.ok(JSON.parse(liner.next()), 'line 0: valid JSON');
|
||||
t.ok(JSON.parse(liner.next()), 'line 1: valid JSON');
|
||||
t.ok(JSON.parse(liner.next()), 'line 2: valid JSON');
|
||||
|
||||
t.equals(liner.next(), false, 'line 3: false');
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('Non-Latin Char JSON', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/eiffel.geojson'));
|
||||
|
||||
t.ok(JSON.parse(liner.next().toString()), 'line 0: valid JSON');
|
||||
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('Manually Close', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/normalFile.txt'));
|
||||
|
||||
t.equals(liner.next().toString(), 'google.com', 'line 0: google.com');
|
||||
|
||||
liner.close();
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
|
||||
t.equals(liner.next(), false, 'line after close: false');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('should correctly processes NULL character in lines', (t) => {
|
||||
const liner = new lineByLine(path.resolve(__dirname, 'fixtures/withNULL.txt'));
|
||||
|
||||
t.equals(liner.next().toString(), 'line without null', 'line 0: line without null');
|
||||
t.equals(liner.next().toString(), 'line wi'+String.fromCharCode(0)+'th null', 'line 1: line with null');
|
||||
t.equals(liner.next().toString(), 'another line without null', 'line 2: another line without null');
|
||||
|
||||
t.equals(liner.fd, null, 'fd is null');
|
||||
t.end();
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue