/* eslint-env node */ /* eslint-disable @typescript-eslint/no-var-requires */ "use strict"; // License: CC0 1.0 const {BatchGenerator} = require("../lib/batches"); describe("BatchGenerator", function() { it("numeric", function() { const gen = new BatchGenerator("abc[1:10].lol[1].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "abc1.lol[1].b", "abc2.lol[1].b", "abc3.lol[1].b", "abc4.lol[1].b", "abc5.lol[1].b", "abc6.lol[1].b", "abc7.lol[1].b", "abc8.lol[1].b", "abc9.lol[1].b", "abc10.lol[1].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); }); it("numeric two", function() { const gen = new BatchGenerator("ab[0:2]c[1:2].lol[1].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "ab0c1.lol[1].b", "ab0c2.lol[1].b", "ab1c1.lol[1].b", "ab1c2.lol[1].b", "ab2c1.lol[1].b", "ab2c2.lol[1].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); }); it("numeric digits", function() { const gen = new BatchGenerator("abc[001:10].lol[1].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "abc001.lol[1].b", "abc002.lol[1].b", "abc003.lol[1].b", "abc004.lol[1].b", "abc005.lol[1].b", "abc006.lol[1].b", "abc007.lol[1].b", "abc008.lol[1].b", "abc009.lol[1].b", "abc010.lol[1].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); expect(gen.hasInvalid).to.be.false; }); it("numeric digits step", function() { const gen = new BatchGenerator("abc[001:10:2].lol[1].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "abc001.lol[1].b", "abc003.lol[1].b", "abc005.lol[1].b", "abc007.lol[1].b", "abc009.lol[1].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); expect(gen.hasInvalid).to.be.false; }); it("numeric digits step back", function() { const gen = new BatchGenerator("abc[10:001:-2].lol[1].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "abc010.lol[1].b", "abc008.lol[1].b", "abc006.lol[1].b", "abc004.lol[1].b", "abc002.lol[1].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); expect(gen.hasInvalid).to.be.false; }); it("numeric w/ invalid", function() { const gen = new BatchGenerator("abc[10:001:-2].lol[1:0].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "abc010.lol[1:0].b", "abc008.lol[1:0].b", "abc006.lol[1:0].b", "abc004.lol[1:0].b", "abc002.lol[1:0].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); expect(gen.hasInvalid).to.be.true; }); it("numeric w/ only invalid", function() { const gen = new BatchGenerator("abc[10:101:-2].lol[1:0].b"); const items = Array.from(gen); expect(items).to.deep.equal([ "abc[10:101:-2].lol[1:0].b", ]); expect(items.length).to.equal(gen.length); expect(items[0]).to.equal(gen.preview); expect(gen.hasInvalid).to.be.true; }); });