Safwan Shaheer

Results 17 issues of 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...

enhancement
breaking

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`...

bug

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...

enhancement
breaking

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.

enhancement

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:...

bug

```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',...

enhancement

```js const { DeterministicFiniteAutomaton } = require('fauton'); const DivisibleBy3DFA = new DeterministicFiniteAutomaton( (randomBinaryString) => { return parseInt(randomBinaryString, 2) % 3 === 0; }, { label: 'DFA 1', alphabets: ['1', '0'],...

bug

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, }, },...

enhancement

```js const { DeterministicFiniteAutomaton } = require('fauton'); const startsWithBC = new DeterministicFiniteAutomaton( (inputString) => inputString.startsWith('bc'), { alphabets: ['a', 'b'], transitions: { A: ['A'], B: [null, 'B'], }, } ); ```...

bug

```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',...

bug