From 57617ee5c4bf9d04df25e04d71743775ab36de94 Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Wed, 24 Nov 2021 17:09:08 +0100 Subject: [PATCH] Add naive bayes test --- .../exareme/tests/e2e/naive-bayes.e2e-spec.ts | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 api/src/engine/connectors/exareme/tests/e2e/naive-bayes.e2e-spec.ts diff --git a/api/src/engine/connectors/exareme/tests/e2e/naive-bayes.e2e-spec.ts b/api/src/engine/connectors/exareme/tests/e2e/naive-bayes.e2e-spec.ts new file mode 100644 index 0000000..7c664d7 --- /dev/null +++ b/api/src/engine/connectors/exareme/tests/e2e/naive-bayes.e2e-spec.ts @@ -0,0 +1,78 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { RawResult } from 'src/engine/models/result/raw-result.model'; +import { AppModule } from '../../../../../main/app.module'; +import { ENGINE_SERVICE } from '../../../../engine.constants'; +import { IEngineService } from '../../../../engine.interfaces'; +import { ExperimentCreateInput } from '../../../../models/experiment/input/experiment-create.input'; +import { + createExperiment, + generateNumber, + TEST_PATHOLOGIES, + TIMEOUT_DURATION_SECONDS, + waitForResult, +} from '../../interfaces/test-utilities'; + +jest.setTimeout(1000 * TIMEOUT_DURATION_SECONDS); + +describe('ExaremeService', () => { + let exaremeService: IEngineService; + + beforeEach(async () => { + const moduleRef: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + exaremeService = await moduleRef.resolve<IEngineService>(ENGINE_SERVICE); + }); + const modelSlug = `naivebayes-${generateNumber()}`; + const algorithmId = 'NAIVE_BAYES'; + + const input: ExperimentCreateInput = { + name: modelSlug, + variables: ['alzheimerbroadcategory'], + coVariables: ['righthippocampus', 'lefthippocampus'], + datasets: TEST_PATHOLOGIES.dementia.datasets + .filter((d) => d.code !== 'fake_longitudinal') + .map((d) => d.code), + domain: TEST_PATHOLOGIES.dementia.code, + algorithm: { + id: algorithmId, + type: 'string', + parameters: [ + { + id: 'alpha', + value: ['0.1'], + }, + { + id: 'k', + value: ['10'], + }, + ], + }, + filter: '', + }; + + describe('Integration Test for experiment API', () => { + it(`create ${algorithmId}`, async () => { + const experiment = await createExperiment(input, exaremeService); + + expect(experiment).toBeTruthy(); + expect(experiment?.status).toStrictEqual('pending'); + + expect(experiment?.id).toBeTruthy(); + + const experimentResult = await waitForResult( + experiment?.id ?? '', + exaremeService, + ); + + expect(experimentResult).toBeTruthy(); + expect(experimentResult.status).toStrictEqual('success'); + + expect(experimentResult.results.length).toBeGreaterThanOrEqual(5); + const data = experimentResult.results[0] as RawResult; + + expect(data.rawdata['data']['precision'][0]).toBeCloseTo(0.517, 3); + }); + }); +}); -- GitLab