|
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); |
|
}); |
|
|