Best JavaScript code snippet using fast-check-monorepo
automaton.ts
Source:automaton.ts
1export interface Point {2 x: number;3 y: number;4}5export interface Automaton {6 states: string[];7 alphabet: string[];8 initialStates: string[];9 transitions: Transition[];10 acceptingStates: string[];11 position?: Record<string, Point>;12}13export interface Transition {14 symbols: string[];15 toState: string;16 fromState: string;17}18export function emptyAutomaton(): Automaton {19 return {20 alphabet: [],21 initialStates: [],22 acceptingStates: [],23 states: [],24 transitions: [],25 position: {},26 };27}28export function stringFromAutomaton(automaton: Automaton) {29 const lines = [];30 lines.push('#states');31 automaton.states.forEach(e => lines.push(e));32 lines.push('#initials');33 automaton.initialStates.forEach(e => lines.push(e));34 lines.push('#accepting');35 automaton.acceptingStates.forEach(e => lines.push(e));36 lines.push('#alphabet');37 automaton.alphabet.forEach(e => lines.push(e));38 lines.push('#transitions');39 automaton.transitions.forEach(transition => {40 transition.symbols.forEach(symbol => {41 lines.push(`${transition.fromState}:${symbol}>${transition.toState}`);42 });43 });44 return lines.join('\n');45}46export function automatonFromString(input: string) {47 const lines = input.split(/\r?\n/);48 let states: string[] = [];49 let initials: string[] = [];50 let accepting: string[] = [];51 let alphabet: string[] = [];52 const transitions = [];53 let parseState = null;54 const parseCounts: Record<string, number> = {55 states : 0,56 initials : 0,57 accepting : 0,58 alphabet : 0,59 transitions : 060 };61 for (let i = 0; i < lines.length; i++) {62 const line = lines[i].replace(/\s/g, '');63 if (line.length === 0) {64 continue;65 } else if (line[0] === '#') {66 parseState = line.substr(1);67 if (typeof parseCounts[parseState] === 'undefined') {68 throw new Error('Line ' + (i + 1).toString() + ': invalid section name ' +69 parseState + '. Must be one of: states, initials, \70 accepting, alphabet, transitions.');71 } else {72 parseCounts[parseState] += 1;73 if (parseCounts[parseState] > 1) {74 throw new Error(`Line ${(i + 1)}: duplicate section name ${parseState}.`);75 }76 }77 } else {78 if (parseState == null) {79 throw new Error('Line ' + (i + 1).toString() + ': no #section declared. \80 Add one section: states, initial, accepting, \81 alphabet, transitions.');82 } else if (parseState === 'states') {83 states = states.concat(line.split(';'));84 } else if (parseState === 'initials') {85 initials = initials.concat(line.split(';'));86 } else if (parseState === 'accepting') {87 accepting = accepting.concat(line.split(';'));88 } else if (parseState === 'alphabet') {89 alphabet = alphabet.concat(line.split(';'));90 } else if (parseState === 'transitions') {91 const parts = line.split(';');92 for (const part of parts) {93 const state_rest = part.split(':');94 const fromState = state_rest[0];95 const rest = state_rest[1].split('>');96 const symbols = rest[0].split(',');97 const toState = rest[1];98 transitions.push({99 fromState: fromState,100 toState: toState,101 symbols: symbols102 });103 }104 }105 }106 }107 for (const k in parseCounts) {108 if (parseCounts[k] !== 1) {109 throw new Error('Specification missing #' + parseCounts[k] +110 ' section.');111 }112 }113 const automaton = emptyAutomaton();114 automaton.states = states;115 automaton.initialStates = initials;116 automaton.alphabet = alphabet;117 automaton.acceptingStates = accepting;118 automaton.transitions = transitions;119 return automaton;120}121export function automatonToDotFormat(automaton: Automaton) {122 const result = ['digraph finite_state_machine {', ' rankdir=LR;'];123 const accStates = [' node [shape = doublecircle];'];124 let i = 0, trans = [];125 for (i = 0; i < automaton.acceptingStates.length; i++) {126 accStates.push(automaton.acceptingStates[i].toString());127 }128 accStates.push(';');129 if (accStates.length > 2) {130 result.push(accStates.join(' '));131 }132 result.push(' node [shape = circle];');133 i = 0;134 automaton.initialStates.forEach(state => {135 result.push(` secret_node${i} [style=invis, shape=point]`);136 const arrow = [` secret_node${i} ->`];137 arrow.push(state);138 arrow.push('[style=bold];');139 result.push(arrow.join(' '));140 i++;141 });142 automaton.transitions.forEach(transition => {143 let initTransition = false;144 for (const init of automaton.initialStates) {145 if (init === transition.toState) {146 trans = [' '];147 trans.push(transition.toState);148 trans.push('->');149 trans.push(transition.fromState);150 trans.push('[');151 trans.push('label =');152 trans.push('"' + transition.symbols.join(',') + '"');153 trans.push(' dir = back];');154 result.push(trans.join(' '));155 break;156 }157 }158 if (!initTransition) {159 trans = [' '];160 trans.push(transition.fromState.toString());161 trans.push('->');162 trans.push(transition.toState.toString());163 trans.push('[');164 trans.push('label =');165 trans.push('"' + transition.symbols.join(',') + '"');166 trans.push(' ];');167 result.push(trans.join(' '));168 }169 });170 result.push('}');171 return result.join('\n').replace(/\$/g, '$');172}173export function parseAutomaton(automaton: string | Automaton) {174 if (typeof automaton === 'string')175 return automatonFromString(automaton);176 return automaton;...
automaton.model.ts
Source:automaton.model.ts
1export interface Automaton {2 states: string[];3 alphabet: string[];4 initialStates: string[];5 transitions: Transition[];6 acceptingStates: string[];7 position?: { [k: string]: Position };8}9export interface Transition {10 symbols: string[];11 toState: string;12 fromState: string;13}14export interface Position {15 x: number;16 y: number;17}18export function emptyAutomaton(): Automaton {19 return {20 alphabet: [],21 initialStates: [],22 acceptingStates: [],23 states: [],24 transitions: [],25 position: {},26 };27}28export function stringFromAutomaton(automaton: Automaton) {29 const lines = [];30 lines.push('#states');31 automaton.states.forEach(e => lines.push(e));32 lines.push('#initials');33 automaton.initialStates.forEach(e => lines.push(e));34 lines.push('#accepting');35 automaton.acceptingStates.forEach(e => lines.push(e));36 lines.push('#alphabet');37 automaton.alphabet.forEach(e => lines.push(e));38 lines.push('#transitions');39 automaton.transitions.forEach(transition => {40 transition.symbols.forEach(symbol => {41 lines.push(`${transition.fromState}:${symbol}>${transition.toState}`);42 });43 });44 return lines.join('\n');45}46export function automatonFromString(input: string) {47 const lines = input.split(/\r?\n/);48 const automaton = emptyAutomaton();49 let states: string[] = [];50 let initials: string[] = [];51 let accepting: string[] = [];52 let alphabet: string[] = [];53 const transitions: Transition[] = [];54 let parseState = null;55 const parseCounts = {56 states : 0,57 initials : 0,58 accepting : 0,59 alphabet : 0,60 transitions : 061 };62 for (let i = 0; i < lines.length; i++) {63 const line = lines[i].replace(/\s/g, '');64 if (line.length === 0) {65 continue;66 } else if (line[0] === '#') {67 parseState = line.substr(1);68 if (typeof parseCounts[parseState] === 'undefined') {69 throw new Error('Line ' + (i + 1).toString() + ': invalid section name ' +70 parseState + '. Must be one of: states, initials, \71 accepting, alphabet, transitions.');72 } else {73 parseCounts[parseState] += 1;74 if (parseCounts[parseState] > 1) {75 throw new Error(`Line ${(i + 1)}: duplicate section name ${parseState}.`);76 }77 }78 } else {79 if (parseState == null) {80 throw new Error('Line ' + (i + 1).toString() + ': no #section declared. \81 Add one section: states, initial, accepting, \82 alphabet, transitions.');83 } else if (parseState === 'states') {84 states = states.concat(line.split(';'));85 } else if (parseState === 'initials') {86 initials = initials.concat(line.split(';'));87 } else if (parseState === 'accepting') {88 accepting = accepting.concat(line.split(';'));89 } else if (parseState === 'alphabet') {90 alphabet = alphabet.concat(line.split(';'));91 } else if (parseState === 'transitions') {92 const state_rest = line.split(':');93 const fromStates = state_rest[0].split(',');94 const parts = state_rest[1].split(';');95 let symbols: string[] = [];96 let toStates: string[] = [];97 for (let j = 0; j < parts.length; j++) {98 const left_right = parts[j].split('>');99 symbols = left_right[0].split(',');100 toStates = left_right[1].split(',');101 }102 transitions.push({103 fromState: fromStates[0],104 toState: toStates[0],105 symbols: symbols106 });107 }108 }109 }110 for (const k in parseCounts) {111 if (parseCounts[k] !== 1) {112 throw new Error('Specification missing #' + parseCounts[k] +113 ' section.');114 }115 }116 automaton.states = states;117 automaton.initialStates = initials;118 automaton.alphabet = alphabet;119 automaton.acceptingStates = accepting;120 automaton.transitions = transitions;121 return automaton;122}123export function automatonToDotFormat(automaton: Automaton) {124 const result = ['digraph finite_state_machine {', ' rankdir=LR;'];125 const accStates = [' node [shape = doublecircle];'];126 let i = 0, trans = [];127 for (i = 0; i < automaton.acceptingStates.length; i++) {128 accStates.push(automaton.acceptingStates[i].toString());129 }130 accStates.push(';');131 if (accStates.length > 2) {132 result.push(accStates.join(' '));133 }134 result.push(' node [shape = circle];');135 i = 0;136 automaton.initialStates.forEach(state => {137 result.push(` secret_node${i} [style=invis, shape=point]`);138 const arrow = [` secret_node${i} ->`];139 arrow.push(state);140 arrow.push('[style=bold];');141 result.push(arrow.join(' '));142 i++;143 });144 automaton.transitions.forEach(transition => {145 let initTransition = false;146 automaton.initialStates.forEach(init => {147 if (init === transition.toState) {148 trans = [' '];149 trans.push(transition.toState);150 trans.push('->');151 trans.push(transition.fromState);152 trans.push('[');153 trans.push('label =');154 trans.push('"' + transition.symbols.join(',') + '"');155 trans.push(' dir = back];');156 result.push(trans.join(' '));157 initTransition = true;158 return true;159 }160 });161 if (!initTransition) {162 trans = [' '];163 trans.push(transition.fromState.toString());164 trans.push('->');165 trans.push(transition.toState.toString());166 trans.push('[');167 trans.push('label =');168 trans.push('"' + transition.symbols.join(',') + '"');169 trans.push(' ];');170 result.push(trans.join(' '));171 }172 });173 result.push('}');174 return result.join('\n').replace(/\$/g, '$');...
mol.js
Source:mol.js
...16});17describe("#parseCounts", function() {18 it("Should extract atom and bond counts", function() {19 var input = " 6 6 0 0 0 0 0 0 0 0 1 V2000";20 var output = parseCounts(input);21 output.should.eql({ atoms: 6, bonds: 6 });22 });23});24describe('#parseAtoms', function() {25 it("Should extract atom positions and types", function() {26 var input = [27 " 1.9050 -0.7932 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0",28 " 1.9050 -2.1232 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0"29 ];30 var output = parseAtoms(input);31 output.should.eql([32 {33 number: 1,34 x: 1.9050,...
Using AI Code Generation
1const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");2const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");3const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");4const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");5const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");6const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");7const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");8const { parseCounts } = require("fast-check-monorepo/test/unit/check/arbitrary/__snapshots__/parseCounts.spec.js");
Using AI Code Generation
1const fc = require('fast-check');2const { parseCounts } = require('fast-check/lib/check/runner/Runner.js');3const { parseSeed } = require('fast-check/lib/check/runner/Seed.js');4const { parsePath } = require('fast-check/lib/check/runner/Path.js');5const counts = parseCounts({ numRuns: 1000 }, { numRuns: 1000 });6const seed = parseSeed({ seed: 42 }, { seed: 42 });7const path = parsePath({ path: "1:2:3" }, { path: "1:2:3" });8console.log("counts: " + counts);9console.log("seed: " + seed);10console.log("path: " + path);11const fc = require('fast-check');12const { parseCounts } = require('fast-check/lib/check/runner/Runner.js');13const { parseSeed } = require('fast-check/lib/check/runner/Seed.js');14const { parsePath } = require('fast-check/lib/check/runner/Path.js');15const counts = parseCounts({ numRuns: 1000 }, { numRuns: 1000 });16const seed = parseSeed({ seed: 42 }, { seed: 42 });17const path = parsePath({ path: "1:2:3" }, { path: "1:2:3" });18console.log("counts: " + counts);19console.log("seed: " + seed);20console.log("path: " + path);21const fc = require('fast-check');22const { parseCounts } = require('fast-check/lib/check/runner/Runner.js');23const { parseSeed } = require('fast-check/lib/check/runner/Seed.js');24const { parsePath } = require('fast-check/lib/check/runner/Path.js');25const counts = parseCounts({ numRuns: 1000 }, { numRuns: 1000 });26const seed = parseSeed({ seed: 42 }, { seed: 42 });27const path = parsePath({ path: "1:2:3" }, { path
Using AI Code Generation
1const { parseCounts } = require('fast-check-monorepo');2const counts = parseCounts(['1', '2', '3']);3console.log(counts);4const { parseCounts } = require('fast-check-monorepo');5const counts = parseCounts(['1', '2', '3']);6console.log(counts);7const { parseCounts } = require('fast-check-monorepo');8const counts = parseCounts(['1', '2', '3']);9console.log(counts);10const { parseCounts } = require('fast-check-monorepo');11const counts = parseCounts(['1', '2', '3']);12console.log(counts);13const { parseCounts } = require('fast-check-monorepo');14const counts = parseCounts(['1', '2', '3']);15console.log(counts);16const { parseCounts } = require('fast-check-monorepo');17const counts = parseCounts(['1', '2', '3']);18console.log(counts);19const { parseCounts } = require('fast-check-monorepo');20const counts = parseCounts(['1', '2', '3']);21console.log(counts);22const { parseCounts } = require('fast-check-monorepo');23const counts = parseCounts(['1', '2', '3']);24console.log(counts);25const { parseCounts } = require('fast-check-monorepo');26const counts = parseCounts(['1', '2', '3']);27console.log(counts);28const { parseCounts } = require('fast-check-monore
Using AI Code Generation
1const { parseCounts } = require('fast-check');2const [min, max] = parseCounts('1..100');3console.log(min, max);4const { parseCounts } = require('fast-check');5const [min, max] = parseCounts('1..100');6console.log(min, max);7const { parseCounts } = require('fast-check');8const [min, max] = parseCounts('1..100');9console.log(min, max);10const { parseCounts } = require('fast-check');11const [min, max] = parseCounts('1..100');12console.log(min, max);13const { parseCounts } = require('fast-check');14const [min, max] = parseCounts('1..100');15console.log(min, max);16const { parseCounts } = require('fast-check');17const [min, max] = parseCounts('1..100');18console.log(min, max);19const { parseCounts } = require('fast-check');20const [min, max] = parseCounts('1..100');21console.log(min, max);22const { parseCounts } = require('fast-check');23const [min, max] = parseCounts('1..100');24console.log(min, max);25const { parseCounts } = require('fast-check');26const [min, max] = parseCounts('1..100');27console.log(min, max);28const { parseCounts } = require('fast-check');29const [min, max] = parseCounts('1..100');30console.log(min, max
Using AI Code Generation
1const fc = require('fast-check');2const { parseCounts } = require('fast-check/lib/cli/parseCounts');3const { parseSeed } = require('fast-check/lib/cli/parseSeed');4const { parsePath } = require('fast-check/lib/cli/parsePath');5const { parseJsonPath } = require('fast-check/lib/cli/parseJsonPath');6const { parseTimeout } = require('fast-check/lib/cli/parseTimeout');7const { parseMaxSkips } = require('fast-check/lib/cli/parseMaxSkips');8const { parseMaxShrinks } = require('fast-check/lib/cli/parseMaxShrinks');9const { parseVerbose } = require('fast-check/lib/cli/parseVerbose');10const { parseReporter } = require('fast-check/lib/cli/parseReporter');11const { parseExamples } = require('fast-check/lib/cli/parseExamples');12const { parseCommand } = require('fast-check/lib/cli/parseCommand');13const { parseConfig } = require('fast-check/lib/cli/parseConfig');14const { parseConfigFile } = require('fast-check/lib/cli/parseConfigFile');15const { parseConfigOverrides } = require('fast-check/lib/cli/parseConfigOverrides');16const { parseConfigOverridesFile } = require('fast-check/lib/cli/parseConfigOverridesFile');17const { parseConfigOverridesFileContent } = require('fast-check/lib/cli/parseConfigOverridesFileContent');18const { parseConfigOverridesContent } = require('fast-check/lib/cli/parseConfigOverridesContent');19const { parseConfigFileContent } = require('fast-check/lib/cli/parseConfigFileContent');20const { parseConfigContent } = require('fast-check/lib/cli/parseConfigContent');21const { parseConfigPath } = require('fast-check/lib/cli/parseConfigPath');22const { parseConfigOverridesPath } = require('fast-check/lib/cli/parseConfigOverridesPath');23const { parseConfigPathContent } = require('fast-check/lib/cli/parseConfigPathContent');24const { parseConfigOverridesPathContent } = require('fast-check/lib/cli/parseConfigOverridesPathContent');25const { parseConfigPathFile } = require('fast-check/lib/cli/parseConfigPathFile');26const { parseConfigOverridesPathFile } = require('fast-check/lib/cli/parseConfigOverridesPathFile');27const { parseConfigPathFileContent } = require('fast-check/lib/cli/parseConfigPathFileContent');
Using AI Code Generation
1const { parseCounts } = require('fast-check');2const counts = parseCounts(process.argv[2]);3console.log(counts);4console.log(counts.values);5console.log(counts.values.length);6console.log(counts.values[0]);7const { parseCounts } = require('fast-check');8const counts = parseCounts(process.argv[2]);9console.log(counts);10console.log(counts.values);11console.log(counts.values.length);12console.log(counts.values[0]);13const { parseCounts } = require('fast-check');14const counts = parseCounts(process.argv[2]);15console.log(counts);16console.log(counts.values);17console.log(counts.values.length);18console.log(counts.values[0]);19const { parseCounts } = require('fast-check');20const counts = parseCounts(process.argv[2]);21console.log(counts);22console.log(counts.values);23console.log(counts.values.length);24console.log(counts.values[0]);25const { parseCounts } = require('fast-check');26const counts = parseCounts(process.argv[2]);27console.log(counts);28console.log(counts.values);29console.log(counts.values.length);30console.log(counts.values[0]);31const { parseCounts } = require('fast-check');32const counts = parseCounts(process.argv[2]);33console.log(counts);34console.log(counts.values);35console.log(counts.values.length);36console.log(counts.values[0]);37const { parseCounts } = require('fast-check');38const counts = parseCounts(process.argv[2]);39console.log(counts);40console.log(counts.values);41console.log(counts.values.length);42console.log(counts.values[0]);43const { parseCounts } = require('fast-check');44const counts = parseCounts(process.argv[2]);
Using AI Code Generation
1const { parseCounts } = require('fast-check-monorepo');2const counts = parseCounts('genes.txt');3console.log(counts);4const { parseCounts } = require('fast-check-monorepo');5const counts = parseCounts('genes.txt');6console.log(counts);7const { parseCounts } = require('fast-check-monorepo');8const counts = parseCounts('genes.txt');9console.log(counts);10const { parseCounts } = require('fast-check-monorepo');11const counts = parseCounts('genes.txt');12console.log(counts);13const { parseCounts } = require('fast-check-monorepo');14const counts = parseCounts('genes.txt');15console.log(counts);16const { parseCounts } = require('fast-check-monorepo');17const counts = parseCounts('genes.txt');18console.log(counts);19const { parseCounts } = require('fast-check-monorepo');20const counts = parseCounts('genes.txt');21console.log(counts);
Using AI Code Generation
1const fc = require("fast-check");2const parseCounts = require("fast-check-monorepo").parseCounts;3const counts = parseCounts("1..10");4const gen = fc.array(fc.record({ count: counts, value: fc.nat() }));5fc.assert(fc.property(gen, (arr) => arr.length <= 10));6const fc = require("fast-check");7const parseCounts = require("fast-check-monorepo").parseCounts;8const counts = parseCounts("1..10");9const gen = fc.array(fc.record({ count: counts, value: fc.nat() }));10fc.assert(fc.property(gen, (arr) => arr.length <= 10));11const fc = require("fast-check");12const parseCounts = require("fast-check-monorepo").parseCounts;13const counts = parseCounts("1..10");14const gen = fc.array(fc.record({ count: counts, value: fc.nat() }));15fc.assert(fc.property(gen, (arr) => arr.length <= 10));16const fc = require("fast-check");17const parseCounts = require("fast-check-monorepo").parseCounts;18const counts = parseCounts("1..10");19const gen = fc.array(fc.record({ count: counts, value: fc.nat() }));20fc.assert(fc.property(gen, (arr) =>
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!