Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d8a0262
Merge pull request #1 from nirdizati-research/master
Musacca Nov 2, 2019
263d0a0
radar chart implemented
Musacca Nov 9, 2019
3834853
Merge branch 'master' into radar-chart
WilliamsRizzi Nov 11, 2019
f30588d
Pushing runtimetable changes with traces rows before merging
stebranchi Nov 11, 2019
14a8cfa
Merge https://github.com/nirdizati-research/predict-react
stebranchi Nov 11, 2019
7c73d3c
Update ControlledRadarChartCard.js
Musacca Nov 11, 2019
5302b74
Update HorizontalBarChartCard.js
Musacca Nov 11, 2019
a69d465
Update dataReducers.js
Musacca Nov 11, 2019
08ef508
Update RadarChartCard.js
Musacca Nov 11, 2019
eee36b8
Update ControlledRadarChartCard.test.js
Musacca Nov 11, 2019
7c7b969
Update RadarChartCard.test.js
Musacca Nov 11, 2019
faaaa95
Update ControlledLineChartCard.js
Musacca Nov 11, 2019
3ed1916
Update ControlledRadarChartCard.js
Musacca Nov 11, 2019
446d7c4
Update ColumnHelper.js
Musacca Nov 11, 2019
15b8a60
Update ResultWrapper.js
Musacca Nov 11, 2019
ad51a16
Update package.json
Musacca Nov 11, 2019
8be5f43
Update package-lock.json
Musacca Nov 11, 2019
239521f
Update package-lock.json
Musacca Nov 11, 2019
fdbc074
Update ResultWrapper.js
Musacca Nov 11, 2019
60db259
Update ControlledRadarChartCard.js
Musacca Nov 11, 2019
0892340
implementing explanation page
Musacca Nov 11, 2019
da77127
Merge pull request #78 from Musacca/radar-chart
WilliamsRizzi Nov 12, 2019
2bdd892
Merge https://github.com/nirdizati-research/predict-react
stebranchi Nov 12, 2019
b7e70e4
Now the runtime table show the traces and notjobs
stebranchi Nov 12, 2019
1222354
Created function that should work for taking graphic values and add a…
stebranchi Nov 13, 2019
16325d2
small chages in lime api
Musacca Nov 19, 2019
c36f83b
Trace api integration
Musacca Dec 1, 2019
679ed26
Merge branch 'master' into explanation-page
Musacca Dec 3, 2019
15fffa2
Code clean and explanation page tests
Musacca Dec 18, 2019
1edcc2a
Merge branch 'explanation-page' of https://github.com/Musacca/predict…
Musacca Dec 18, 2019
155cfcc
Code clean and explanation page tests
Musacca Dec 18, 2019
6be56ca
Post hoc test fix
Musacca Dec 18, 2019
0630f0e
small bug fix in radar chart
Musacca Dec 25, 2019
7da8cd3
Card for job methods in explanation page
Musacca Dec 25, 2019
f4f53a1
Merge branch 'explanation-page' of https://github.com/Musacca/predict…
Musacca Dec 25, 2019
58501b0
Circle progress bar for lime graph
Musacca Dec 26, 2019
08661d9
Temporal stability graph
Musacca Jan 8, 2020
c18b9c0
Temporal stability graph tests
Musacca Jan 9, 2020
9859d7c
Merge pull request #80 from Musacca/explanation-page
WilliamsRizzi Jan 9, 2020
32a6bdf
Explanation page (#82) :sparkles: added temporal stability and tempor…
Musacca Jan 22, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@
"react-scripts": "^2.1.8"
},
"dependencies": {
"apexcharts": "^3.10.1",
"loader-runner": "^3.0.0",
"node-sass": "^4.12.0",
"prop-types": "^15.7.2",
"react": "16.3.2",
"react-apexcharts": "^1.3.3",
"react-dom": "16.3.3",
"react-ga": "^2.6.0",
"react-google-charts": "^2.0.29",
"react-grid-system": "^6.0.3",
"react-html-parser": "^1.0.3",
"react-json-tree": "^0.11.0",
"react-md": "^1.12.1",
Expand Down
46 changes: 46 additions & 0 deletions src/__tests__/components/chart/ControlledRadarChartCard.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React from 'react';
import {shallow} from 'enzyme';
import {CLASSIFICATION, REGRESSION} from '../../../reference';
import {regJobs} from '../../../../stories/LineChart';
import {SelectField} from 'react-md';
import {classJobs} from '../../../../stories/Validation';
import RadarChartCard from '../../../components/chart/RadarChartCard';
import ControlledRadarChartCard from '../../../components/chart/ControlledRadarChartCard';


const element = shallow(<ControlledRadarChartCard predictionMethod={REGRESSION} jobs={regJobs}/>);
it('renders', () => {
expect(element).toBeDefined();
expect(element.find(RadarChartCard).length).toBe(1);
expect(element.find(SelectField).length).toBe(2);

expect(element.find(SelectField).at(0).props().menuItems.length).toBeGreaterThanOrEqual(1);
expect(element.find(SelectField).at(0).props().menuItems).toContain('Average');
expect(element.find(SelectField).at(1).props().menuItems.length).toBeGreaterThanOrEqual(1);
expect(element.find(SelectField).at(1).props().menuItems).toContain('All');
});

it('maps jobs to chart', () => {
const radarChartProps = element.find(RadarChartCard).props();
expect(radarChartProps.labels).toContain('rmse');
expect(radarChartProps.data.length).toBe(1);
expect(radarChartProps.data[0].data.length).toBe(4);
expect(radarChartProps.labels.length).toBe(4);
});


it('when updating', () => {
const upEl = shallow(<ControlledRadarChartCard predictionMethod={CLASSIFICATION} jobs={classJobs}/>);
expect(upEl.find(SelectField).length).toBe(2);
expect(upEl.find(SelectField).at(0).props().menuItems.length).toBeGreaterThanOrEqual(1);
expect(upEl.find(SelectField).at(1).props().menuItems.length).toBeGreaterThanOrEqual(1);

const radarChartProps = upEl.find(RadarChartCard).props();
expect(radarChartProps.labels).toContain('f1_score');
expect(radarChartProps.data.length).toBe(1);
expect(radarChartProps.data[0].data.length).toBe(5);
expect(radarChartProps.labels.length).toBe(5);
expect(Math.max(...radarChartProps.data[0].data)).toBeLessThanOrEqual(1);
expect(Math.min(...radarChartProps.data[0].data)).toBeGreaterThanOrEqual(0);
});

35 changes: 35 additions & 0 deletions src/__tests__/components/chart/HorizontalBarChartCard.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React from 'react';
import {shallow} from 'enzyme';
import ReactApexChart from 'react-apexcharts';
import HorizontalBarChartCard from '../../../components/chart/HorizontalBarChartCard';

const labels = ['event', 'event1', 'event2', 'event3', 'event4'];
const values = [1, 0.8, 0.1, 0.3, 0];

describe('HorizontalBarChartCard', () => {
it('renders with empty data', () => {
const element = shallow(<HorizontalBarChartCard data={[]} labels={[]}/>);
expect(element).toBeDefined();
expect(element.find(ReactApexChart).length).toBe(0);
});

it('renders with empty labels', () => {
const element = shallow(<HorizontalBarChartCard data={values} labels={[]}/>);
expect(element).toBeDefined();
expect(element.find(ReactApexChart).length).toBe(1);

const chartProps = element.find(ReactApexChart).props();
expect(chartProps.options.xaxis.categories.length).toBe(0);
expect(chartProps.series[0].data.length).toBe(5);
});

it('renders with non empty data and label', () => {
const element = shallow(<HorizontalBarChartCard data={values} labels={labels}/>);
expect(element).toBeDefined();
expect(element.find(ReactApexChart).length).toBe(1);

const chartProps = element.find(ReactApexChart).props();
expect(chartProps.options.xaxis.categories.length).toBe(5);
expect(chartProps.series[0].data.length).toBe(5);
});
});
30 changes: 30 additions & 0 deletions src/__tests__/components/chart/PredictionLineChart.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import React from 'react';
import {shallow} from 'enzyme';
import ReactApexChart from 'react-apexcharts';
import PredictionLineChart from '../../../components/chart/PredictionLineChart';

const categories = ['event', 'event1', 'event2', 'event3', 'event4'];
const values = [[16.4, 5.4], [21.7, 2], [25.4, 3], [19, 2], [10.9, 1]];

describe('PredictionLineChart', () => {
it('renders with empty data', () => {
const element = shallow(<PredictionLineChart data={[]} categories={[]}/>);
expect(element).toBeDefined();
expect(element.find(ReactApexChart).length).toBe(0);
});

it('renders with empty labels', () => {
const element = shallow(<PredictionLineChart data={values} categories={[]}/>);
expect(element).toBeDefined();
expect(element.find(ReactApexChart).length).toBe(1);
});

it('renders with non empty data and label', () => {
const element = shallow(<PredictionLineChart data={values} categories={categories}/>);
expect(element).toBeDefined();
expect(element.find(ReactApexChart).length).toBe(1);

const chartProps = element.find(ReactApexChart).props();
expect(chartProps.series.length).toBe(5);
});
});
38 changes: 38 additions & 0 deletions src/__tests__/components/chart/RadarChartCard.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from 'react';
import {shallow} from 'enzyme';
import RadarChartCard from '../../../components/chart/RadarChartCard';
import ReactApexChart from 'react-apexcharts';

const labels = ['f1_score', 'accuracy', 'precision', 'recall', 'auc'];
const values = [1, 0.8, 0.1, 0.3, 0];

describe('RadarChartCard', () => {
it('renders with full data', () => {
const element = shallow(<RadarChartCard data={values} labels={labels}/>);
expect(element).toBeDefined();
const chartProps = element.find(ReactApexChart).props();
expect(element.find(ReactApexChart).length).toBe(1);
expect(chartProps.options.labels.length).toBe(5);
expect(chartProps.options.labels[0]).toEqual('f1_score');
expect(chartProps.options.labels[4]).toEqual('auc');
expect(chartProps.series).toEqual(values);
});

it('renders without labels', () => {
const element = shallow(<RadarChartCard data={values} labels={[]}/>);
expect(element).toBeDefined();
const chartProps = element.find(ReactApexChart).props();
expect(element.find(ReactApexChart).length).toBe(1);
expect(chartProps.options.labels.length).toBe(0);
expect(chartProps.series).toEqual(values);
});

it('renders without data', () => {
const element = shallow(<RadarChartCard data={[]} labels={[]}/>);
expect(element).toBeDefined();
const chartProps = element.find(ReactApexChart).props();
expect(element.find(ReactApexChart).length).toBe(1);
expect(chartProps.options.labels.length).toBe(0);
expect(chartProps.series).toEqual([]);
});
});
Loading