simple-dfa
Version:
Allow construction, validation, and manual step-through of a simple DFA.
31 lines (27 loc) • 1.09 kB
JavaScript
const assert = require("assert");
const SimpleDFA = require('../../simple-dfa.js');
describe("Validate Input .validate", () => {
const dfa = new SimpleDFA([], ["a", "b", "c"], []);
describe ("Legal", () => {
it("Valid", () => {
assert.equal(dfa.validateInput(""), true);
assert.equal(dfa.validateInput("a"), true);
assert.equal(dfa.validateInput("b"), true);
assert.equal(dfa.validateInput("c"), true);
assert.equal(dfa.validateInput("acbc"), true);
assert.equal(dfa.validateInput("bcabcabcbca"), true);
assert.equal(dfa.validateInput("acbabcbbbbbbbbbbbbbbbbbbbbbbbbbbb"), true);
});
it("Invalid", () => {
assert.equal(dfa.validateInput("d"), false);
assert.equal(dfa.validateInput("abcdc"), false);
assert.equal(dfa.validateInput(" "), false);
assert.equal(dfa.validateInput("aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbf"), false);
});
});
describe ("Illegal", () => {
it("Non-String", () => {
assert.throws(() => dfa.validateInput({bad: "data"}));
});
});
});