Safwan Shaheer
Safwan Shaheer
There should be an option to test two separate finite automatons rather than only using a function. For example ```js // Not passing constructor arguments for sake of brevity const...
We need to check whether the state referenced in `start_state` in present in the `states` array, and each of the states of the `final_states` but also be present in `states`...
Test logic should not be a part of automaton, as it's only required when testing. Furthermore, if we want to test our automaton based on a different logic we need...
At the moment false and true positives and negative percentages are counted out of total input strings, not out of total correct and incorrect strings.
Right now there is no validation for Automata testing configs. ```js const finiteAutomataTest = new FiniteAutomataTest(); finiteAutomataTest.test([ { automaton: null, options: { type: 'generate', range: { maxLength: 10, }, outputFiles:...
```js const { NonDeterministicFiniteAutomaton, Render } = require('fauton'); const path = require('path'); const nfa = new NonDeterministicFiniteAutomaton((_, automatonTestResult) => automatonTestResult, { label: 'NFA 1', final_states: ['D'], start_state: 'A', alphabets: ['0',...
```js const { DeterministicFiniteAutomaton } = require('fauton'); const DivisibleBy3DFA = new DeterministicFiniteAutomaton( (randomBinaryString) => { return parseInt(randomBinaryString, 2) % 3 === 0; }, { label: 'DFA 1', alphabets: ['1', '0'],...
Example with `generate` option ```js const { FiniteAutomataTest} = require('fauton'); const finiteAutomataTest = new FiniteAutomataTest(path.join(__dirname, 'logs')); finiteAutomataTest.test([ { automaton: startsWithBC, options: { type: 'generate', range: { maxLength: 10, }, },...
```js const { DeterministicFiniteAutomaton } = require('fauton'); const startsWithBC = new DeterministicFiniteAutomaton( (inputString) => inputString.startsWith('bc'), { alphabets: ['a', 'b'], transitions: { A: ['A'], B: [null, 'B'], }, } ); ```...
```js const { DeterministicFiniteAutomaton } = require('fauton'); const startsWithBC = new DeterministicFiniteAutomaton( (inputString) => inputString.startsWith('bc'), { alphabets: ['a', 'b'], states: ['A', 'B', 'C'], transitions: { A: ['B', 'A'], B: ['A',...