| import fs from 'fs'; | |
| import path from 'path'; | |
| import customer_service from '../../../../graph/test/dsl_examples/customer_service.json'; | |
| import headhunter_zh from '../../../../graph/test/dsl_examples/headhunter_zh.json'; | |
| import interpreter from '../../../../graph/test/dsl_examples/interpreter.json'; | |
| import retrievalRelevantRewriteAndGenerate from '../../../../graph/test/dsl_examples/retrieval_relevant_rewrite_and_generate.json'; | |
| import { dsl } from './mock'; | |
| import { buildNodesAndEdgesFromDSLComponents } from './utils'; | |
| test('buildNodesAndEdgesFromDSLComponents', () => { | |
| const { edges, nodes } = buildNodesAndEdgesFromDSLComponents(dsl.components); | |
| expect(nodes.length).toEqual(4); | |
| expect(edges.length).toEqual(4); | |
| expect(edges).toEqual( | |
| expect.arrayContaining([ | |
| expect.objectContaining({ | |
| source: 'begin', | |
| target: 'Answer:China', | |
| }), | |
| expect.objectContaining({ | |
| source: 'Answer:China', | |
| target: 'Retrieval:China', | |
| }), | |
| expect.objectContaining({ | |
| source: 'Retrieval:China', | |
| target: 'Generate:China', | |
| }), | |
| expect.objectContaining({ | |
| source: 'Generate:China', | |
| target: 'Answer:China', | |
| }), | |
| ]), | |
| ); | |
| }); | |
| test('build nodes and edges from headhunter_zh dsl', () => { | |
| const { edges, nodes } = buildNodesAndEdgesFromDSLComponents( | |
| headhunter_zh.components, | |
| ); | |
| console.info('node length', nodes.length); | |
| console.info('edge length', edges.length); | |
| try { | |
| fs.writeFileSync( | |
| path.join(__dirname, 'headhunter_zh.json'), | |
| JSON.stringify({ edges, nodes }, null, 4), | |
| ); | |
| console.log('JSON data is saved.'); | |
| } catch (error) { | |
| console.warn(error); | |
| } | |
| expect(nodes.length).toEqual(12); | |
| }); | |
| test('build nodes and edges from customer_service dsl', () => { | |
| const { edges, nodes } = buildNodesAndEdgesFromDSLComponents( | |
| customer_service.components, | |
| ); | |
| console.info('node length', nodes.length); | |
| console.info('edge length', edges.length); | |
| try { | |
| fs.writeFileSync( | |
| path.join(__dirname, 'customer_service.json'), | |
| JSON.stringify({ edges, nodes }, null, 4), | |
| ); | |
| console.log('JSON data is saved.'); | |
| } catch (error) { | |
| console.warn(error); | |
| } | |
| expect(nodes.length).toEqual(12); | |
| }); | |
| test('build nodes and edges from interpreter dsl', () => { | |
| const { edges, nodes } = buildNodesAndEdgesFromDSLComponents( | |
| interpreter.components, | |
| ); | |
| console.info('node length', nodes.length); | |
| console.info('edge length', edges.length); | |
| try { | |
| fs.writeFileSync( | |
| path.join(__dirname, 'interpreter.json'), | |
| JSON.stringify({ edges, nodes }, null, 4), | |
| ); | |
| console.log('JSON data is saved.'); | |
| } catch (error) { | |
| console.warn(error); | |
| } | |
| expect(nodes.length).toEqual(12); | |
| }); | |
| test('build nodes and edges from chat bot dsl', () => { | |
| const { edges, nodes } = buildNodesAndEdgesFromDSLComponents( | |
| retrievalRelevantRewriteAndGenerate.components, | |
| ); | |
| try { | |
| fs.writeFileSync( | |
| path.join(__dirname, 'retrieval_relevant_rewrite_and_generate.json'), | |
| JSON.stringify({ edges, nodes }, null, 4), | |
| ); | |
| console.log('JSON data is saved.'); | |
| } catch (error) { | |
| console.warn(error); | |
| } | |
| expect(nodes.length).toEqual(12); | |
| }); | |