From ca5a72332a7872291f2cdd088709d62c606ff1b2 Mon Sep 17 00:00:00 2001 From: Steve Reis <stevereis93@gmail.com> Date: Wed, 7 Sep 2022 11:05:42 +0200 Subject: [PATCH] fix: Add summary table to linear regression --- .../linear-regression.handler.spec.ts | 23 +++++++++++-------- .../algorithms/linear-regression.handler.ts | 6 +++-- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.spec.ts b/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.spec.ts index ca1f91e..962b13a 100644 --- a/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.spec.ts +++ b/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.spec.ts @@ -87,22 +87,25 @@ describe('linear regression result handler', () => { }); describe('Handle', () => { - it('should output a tableResult', () => { + it('should output two TableResult', () => { linearHandler.handle(experiment, data, vars); - expect(experiment.results).toHaveLength(1); + expect(experiment.results).toHaveLength(2); - const result = experiment.results[0] as TableResult; + const summary = experiment.results[0] as TableResult; + const coefs = experiment.results[1] as TableResult; - expect(result.headers).toHaveLength(7); + expect(coefs.headers).toHaveLength(7); data.coefficients.forEach((coef, index) => { - expect(result.data[index][1]).toBe(coef.Estimate); - expect(result.data[index][2]).toBe(coef['Std. Error']); - expect(result.data[index][3]).toBe(coef['z-value']); - expect(result.data[index][4]).toBe(coef['p-value']); - expect(result.data[index][5]).toBe(coef['low0.95CI']); - expect(result.data[index][6]).toBe(coef['high0.95CI']); + expect(coefs.data[index][1]).toBe(coef.Estimate); + expect(coefs.data[index][2]).toBe(coef['Std. Error']); + expect(coefs.data[index][3]).toBe(coef['z-value']); + expect(coefs.data[index][4]).toBe(coef['p-value']); + expect(coefs.data[index][5]).toBe(coef['low0.95CI']); + expect(coefs.data[index][6]).toBe(coef['high0.95CI']); }); + + expect(summary.data.some((row) => !row[0] || !row[1])).toBeFalsy(); }); }); }); diff --git a/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.ts b/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.ts index 96d2a3a..8af3a9c 100644 --- a/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.ts +++ b/api/src/engine/connectors/datashield/handlers/algorithms/linear-regression.handler.ts @@ -11,6 +11,10 @@ const lookupDict = { 'low0.95CI': 'Low 95% CI', 'high0.95CI': 'High 95% CI', _row: '', + iter: 'Iteration(s)', + Nvalid: 'Valid observations', + Ntotal: 'Total observations', + df: 'Degrees of freedom', }; const properties = [ @@ -69,7 +73,5 @@ export default class LinearRegressionHandler extends BaseHandler { if (summaryResult) experiment.results.push(summaryResult); if (tableResult) experiment.results.push(tableResult); - - this.next?.handle(experiment, data, vars); } } -- GitLab