UNPKG

fauton

Version:

A library to test any finite automaton with arbitrary alphabets

39 lines (38 loc) 1.67 kB
/// <reference types="node" /> import fs from 'fs'; import { FiniteAutomatonTestInfo, InputStringOption, IOutputFiles } from '../../types'; import { FiniteAutomaton } from '../FiniteAutomaton'; import { RegularExpression } from '../RegularExpression'; import * as FiniteAutomataTestUtils from './utils'; export declare type IAutomataTestConfig = { automaton: FiniteAutomaton; regex?: RegularExpression; options: InputStringOption; } | { automaton?: FiniteAutomaton; regex: RegularExpression; options: InputStringOption; }; declare type IWriteStreams = Record<`${keyof IOutputFiles}WriteStream`, null | fs.WriteStream>; export declare class FiniteAutomataTest { #private; constructor(logsPath: string); createFileWriteStreams(automatonLabel: string, outputFiles: Partial<IOutputFiles>): { record: { caseWriteStream: fs.WriteStream | null; incorrectWriteStream: fs.WriteStream | null; correctWriteStream: fs.WriteStream | null; inputWriteStream: fs.WriteStream | null; aggregateWriteStream: fs.WriteStream | null; acceptedWriteStream: fs.WriteStream | null; rejectedWriteStream: fs.WriteStream | null; }; endStreams(): void; }; testAutomata(finiteAutomaton: FiniteAutomaton | RegularExpression, finiteAutomatonTestInfo: FiniteAutomatonTestInfo, writeStreams: IWriteStreams, inputStrings: string[]): void; test(configs: { automaton: FiniteAutomaton | RegularExpression; options: InputStringOption; }[]): Promise<void>; } export { FiniteAutomataTestUtils };