From 771906a5c383227c6b4dc6130516e13c60df71d7 Mon Sep 17 00:00:00 2001 From: Laurent Knoll <laurent.knoll@orange.com> Date: Thu, 20 Oct 2022 07:25:39 +0200 Subject: [PATCH] =?UTF-8?q?Closes=20#11.=20Taille=20de=20r=C3=A8gle=20ajus?= =?UTF-8?q?table.=20Tests=20unitaires.=20Petits=20nettoyages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 9 +- docs/images/ruler_panel.png | Bin 36700 -> 33994 bytes karma.conf.js | 6 +- package-lock.json | 47 + package.json | 2 + src/custom.d.ts | 4 +- src/data/dataImporter.ts | 25 + src/instruments/ruler.ts | 8 +- src/lab.tsx | 22 +- src/ui/steps/drawBlobMaskStep.tsx | 13 +- src/ui/steps/rulerStep.tsx | 52 +- src/ui/welcome.tsx | 5 +- tests/data/coords/circleCoords.test.ts | 22 + tests/data/dataExporter.test.ts | 29 + tests/fixtures/ExpJ1CrB9_Coord_Blob.txt | 2422 +++++++++++++++++++++++ tests/fixtures/Results_ExpJ1CrB9.csv | 2 + tests/fixtures/fixtures.ts | 37 + tests/index.ts | 3 +- webpack.common.js | 4 + 19 files changed, 2678 insertions(+), 34 deletions(-) create mode 100644 src/data/dataImporter.ts create mode 100644 tests/data/coords/circleCoords.test.ts create mode 100644 tests/data/dataExporter.test.ts create mode 100644 tests/fixtures/ExpJ1CrB9_Coord_Blob.txt create mode 100644 tests/fixtures/Results_ExpJ1CrB9.csv create mode 100644 tests/fixtures/fixtures.ts diff --git a/docs/README.md b/docs/README.md index 3933aea..ac3464f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -54,7 +54,10 @@ Pour s'assurer que 10 centimètres sont bien couverts, **les petits points "dét  -Pour placer la règle avec plus de précision, utiliser le bouton  (en jaune ci-dessous). +Si il y a moins de 10cm règle sur la photo, il est possible de modifier la taille à couvrir avec les boutons +/- (en bleu ci-dessous). +Le nombre de détrompeurs sera ajusté. + +Pour placer la règle avec plus de précision, utiliser le bouton  (en jaune ci-dessous).  @@ -64,7 +67,7 @@ Une fois la règle placée, **passer à l'étape suivante en appuyant sur le bou ## Étape 3 : positionner la boîte de Petri -Tout comme la règle, **placer la boîte de Petri à l'aide des poignées**, et utiliser le bouton  +Tout comme la règle, **placer la boîte de Petri à l'aide des poignées**, et utiliser le bouton  pour la placer avec précision.  @@ -106,7 +109,7 @@ Le bouton  s'active et permet de **passer à l'étape --- -## Étape 5 : Télécharger les résultats +## Étape 5 : télécharger les résultats  diff --git a/docs/images/ruler_panel.png b/docs/images/ruler_panel.png index e72765f14b8aa57ea69dbb8255301edfbe27fa34..031c6ec2a122ac263e50f693391f963b8dbbd5b9 100644 GIT binary patch literal 33994 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%0Dw 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 BbO`_e literal 36700 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 Beft0a diff --git a/karma.conf.js b/karma.conf.js index ab6da1a..5ebfdfc 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,8 +2,6 @@ let webpackConfig = require('./webpack.staging.js'); webpackConfig.entry = {}; -console.info(webpackConfig) - module.exports = function(config) { config.set({ basePath: '', @@ -18,7 +16,7 @@ module.exports = function(config) { }, plugins: [ require('karma-jasmine'), - require('karma-chrome-launcher'), + require('karma-firefox-launcher'), require('karma-spec-reporter'), require('karma-jasmine-html-reporter'), require('karma-webpack'), @@ -31,7 +29,7 @@ module.exports = function(config) { logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], + browsers: ['Firefox'], client: { clearContext: false }, diff --git a/package-lock.json b/package-lock.json index 1b1fa08..f7777b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "jest-mock": "^29.1.2", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", + "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "^5.1.0", "karma-jasmine-html-reporter": "^2.0.0", "karma-spec-reporter": "^0.0.34", @@ -5677,6 +5678,31 @@ "which": "^1.2.1" } }, + "node_modules/karma-firefox-launcher": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "dependencies": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, + "node_modules/karma-firefox-launcher/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/karma-jasmine": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", @@ -12981,6 +13007,27 @@ "which": "^1.2.1" } }, + "karma-firefox-launcher": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "requires": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "karma-jasmine": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", diff --git a/package.json b/package.json index a55a109..5dd0203 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "private": true, "scripts": { "serve": "webpack serve --open --config webpack.staging.js", + "test": "karma start --single-run", "build": "webpack" }, "keywords": [], @@ -38,6 +39,7 @@ "jest-mock": "^29.1.2", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", + "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "^5.1.0", "karma-jasmine-html-reporter": "^2.0.0", "karma-spec-reporter": "^0.0.34", diff --git a/src/custom.d.ts b/src/custom.d.ts index c26f543..97b032b 100644 --- a/src/custom.d.ts +++ b/src/custom.d.ts @@ -1 +1,3 @@ -declare module '*.svg'; \ No newline at end of file +declare module '*.svg'; +declare module '*.txt'; +declare module '*.csv'; diff --git a/src/data/dataImporter.ts b/src/data/dataImporter.ts new file mode 100644 index 0000000..a1e475f --- /dev/null +++ b/src/data/dataImporter.ts @@ -0,0 +1,25 @@ +import {Coords} from "./coords/coords"; +import {PathCoords} from "./coords/pathCoords"; +import {StringUtils} from "../utils/stringUtils"; +import * as paper from "paper"; + +/** + * Import de données, sert plutôt ôu rle debug + */ +export class DataImporter { + + /** + * Charge un PathCoords depuis des coordonnées text + */ + public import(text: string): PathCoords { + let pathCoords = new PathCoords(); + let lines = StringUtils.splitLines(text); + lines.filter(line => line.trim().length > 0).forEach( + (line: string) => { + let [x, y] = line.split("\t"); + pathCoords.points.push(new paper.Point(Number(x), Number(y))); + } + ); + return pathCoords; + } +} diff --git a/src/instruments/ruler.ts b/src/instruments/ruler.ts index cb1991c..814fb59 100644 --- a/src/instruments/ruler.ts +++ b/src/instruments/ruler.ts @@ -9,7 +9,7 @@ import {PaperUtils} from "../utils/paperUtils"; */ export class Ruler extends AbstractInstrument<VectorCoords> implements Instrument { - public constructor(protected lab : Lab, coords : VectorCoords, private tickCount : number) { + public constructor(protected lab : Lab, coords : VectorCoords) { super(lab, coords, [ new Handle("startHandle", true), new Handle("endHandle", true) @@ -18,10 +18,10 @@ export class Ruler extends AbstractInstrument<VectorCoords> implements Instrumen drawIn(coords : VectorCoords, group: paper.Group) { group.addChild(new paper.Path.Line(coords.start, coords.end)); - + let tickCount = this.lab.data.rulerTickCount; let vector = this.coords.asPointVector(); - for (let i = 0; i < this.tickCount; i++) { - let tickCircle = new paper.Path.Circle(this.coords.start.add(vector.multiply(i / this.tickCount)), PaperUtils.absoluteDimension(1)); + for (let i = 0; i < tickCount; i++) { + let tickCircle = new paper.Path.Circle(this.coords.start.add(vector.multiply(i / tickCount)), PaperUtils.absoluteDimension(1)); group.addChild(tickCircle); } diff --git a/src/lab.tsx b/src/lab.tsx index 342dbbd..654753b 100644 --- a/src/lab.tsx +++ b/src/lab.tsx @@ -21,6 +21,22 @@ import {Welcome} from "./ui/welcome"; */ export const DEBUG_MODE = false; +/** + * La taille par défaut de la règle + */ +export const DEFAULT_RULER_TICK_COUNT = 10; + +/** + * La taille minimum de la règle + */ +export const MIN_RULER_TICK_COUNT = 8; + +/** + * La taille maximum de la règle + */ +export const MAX_RULER_TICK_COUNT = 15; + + export interface LabData { pictureSize : paper.Size, @@ -159,7 +175,7 @@ export class Lab extends React.Component<{}> { filename: filename, - rulerTickCount : 10, + rulerTickCount : DEFAULT_RULER_TICK_COUNT, rulerCoords: new VectorCoords(new paper.Point(width * 0.25, height / 2), new paper.Point(width * 0.75, height / 2)), @@ -171,7 +187,7 @@ export class Lab extends React.Component<{}> { // Le plus en dessous en premier this.blobMask = new BlobMask(this, this.data.blobMaskCoords); this.petriDish = new PetriDish(this, this.data.petriDishCoords); - this.ruler = new Ruler(this, this.data.rulerCoords, this.data.rulerTickCount); + this.ruler = new Ruler(this, this.data.rulerCoords); // Zoom global this.zoomFit(); @@ -290,7 +306,7 @@ export class Lab extends React.Component<{}> { <Container fluid={true}> <Row className={"col-md-12"}> <div className="d-flex d-flex justify-content-between"> - <Navbar.Brand className={"p-0"}><i className={"fa-solid fa-flask me-2"}></i>Blob Analysis Lab <sup><Badge pill bg="secondary" text="primary">démo</Badge></sup></Navbar.Brand> + <Navbar.Brand className={"p-0"}><i className={"fa-solid fa-flask me-2"}></i>Blob Analysis Lab <sup><Badge pill bg="secondary" text="primary">demo</Badge></sup></Navbar.Brand> <Form className={"inline-form"}> <Form.Group controlId="zoomGroup"> <Form.Label>Zoom :</Form.Label> diff --git a/src/ui/steps/drawBlobMaskStep.tsx b/src/ui/steps/drawBlobMaskStep.tsx index cd2cfac..b8d654f 100644 --- a/src/ui/steps/drawBlobMaskStep.tsx +++ b/src/ui/steps/drawBlobMaskStep.tsx @@ -5,6 +5,7 @@ import {Alert, Button} from "react-bootstrap"; import {IoUtils} from "../../utils/ioUtils"; import {DEBUG_MODE} from "../../lab"; import {StringUtils} from "../../utils/stringUtils"; +import {DataImporter} from "../../data/dataImporter"; interface DrawBlobMaskStepState extends StepState { @@ -43,18 +44,10 @@ export class DrawBlobMaskStep extends Step<DrawBlobMaskStepState> { } loadData(): void { + let dataImporter = new DataImporter(); IoUtils.openTextFile( (text : string) => { - console.info("text loaded") - this.props.lab.data.blobMaskCoords.points = []; - let lines = StringUtils.splitLines(text); - lines.filter(line => line.trim().length > 0).forEach( - (line : string) => { - let [x, y] = line.split("\t"); - this.props.lab.data.blobMaskCoords.points.push(new paper.Point(Number(x), Number(y))); - } - ); - // this.props.lab.data.blobMaskCoords.points.push(this.props.lab.data.blobMaskCoords.points[0]); + this.props.lab.data.blobMaskCoords = dataImporter.import(text); this.props.lab.blobMask.refresh(); }); } diff --git a/src/ui/steps/rulerStep.tsx b/src/ui/steps/rulerStep.tsx index 51f01e9..05fe8c1 100644 --- a/src/ui/steps/rulerStep.tsx +++ b/src/ui/steps/rulerStep.tsx @@ -1,17 +1,25 @@ import {Step, StepProps, StepState} from "./step"; import * as React from "react"; -import {Alert, Button, Form, InputGroup} from "react-bootstrap"; -import {DEBUG_MODE} from "../../lab"; +import {Alert, Button, Form, FormText, InputGroup} from "react-bootstrap"; +import {DEBUG_MODE, DEFAULT_RULER_TICK_COUNT, MAX_RULER_TICK_COUNT, MIN_RULER_TICK_COUNT} from "../../lab"; + + +interface RulerStepState extends StepState { + + tickCount: number | null; + +} + /** * Etape de placement de la règle */ -export class RulerStep extends Step<StepState> { +export class RulerStep extends Step<RulerStepState> { private rescaleInputRef = React.createRef<HTMLInputElement>(); public constructor(props : StepProps) { - super(props, { active: false, activable : false }); + super(props, { active: false, activable : false, tickCount : null }); } canBeActivated(): boolean { @@ -21,6 +29,9 @@ export class RulerStep extends Step<StepState> { onActivation(): void { this.props.lab.ruler.activate(); this.props.lab.zoomFit(); + this.setState( + {tickCount: this.props.lab.data?.rulerTickCount} + ); } onDeactivation(): void { @@ -31,6 +42,23 @@ export class RulerStep extends Step<StepState> { this.props.lab.zoomIn(this.props.lab.data.rulerCoords.bounds().center); } + + private tickCountMinus() { + this.props.lab.data.rulerTickCount = Math.max(this.props.lab.data.rulerTickCount - 1, MIN_RULER_TICK_COUNT); + this.props.lab.ruler.refresh(); + this.setState( + {tickCount: this.props.lab.data?.rulerTickCount} + ); + } + + private tickCountPlus() { + this.props.lab.data.rulerTickCount = Math.min(this.props.lab.data.rulerTickCount + 1, MAX_RULER_TICK_COUNT); + this.props.lab.ruler.refresh(); + this.setState( + {tickCount: this.props.lab.data?.rulerTickCount} + ); + } + private rescale() { let ppcm = Number.parseFloat(this.rescaleInputRef.current.value); let rulerCoords = this.props.lab.data.rulerCoords; @@ -38,14 +66,28 @@ export class RulerStep extends Step<StepState> { this.props.lab.ruler.refresh(); } + render() : React.ReactNode { return <div> <div> <Alert show={!this.state.activable} variant="warning" className={"p-1"}>Veuillez charger une photo.</Alert> - <p>Positionnez la règle sur la photo. La règle doit couvrir 10 cm.</p> + <p>Positionnez la règle sur la photo.<br/> + La règle doit couvrir + <InputGroup className={"d-inline"}> + <div className={"d-inline-flex"}> + <Button disabled={!this.state.active} onClick={this.tickCountMinus.bind(this)} size={"sm"} className={"d-inline"} variant={"light"}>-</Button> + </div> + <div className={"col-1 d-inline-flex"}> + <Form.Control disabled={!this.state.active} className={"d-inline"} readOnly={true} defaultValue={this.state.tickCount} type={"text"} size={"sm"} htmlSize={2}/> + </div> + <div className={"d-inline-flex"}> + <Button disabled={!this.state.active} onClick={this.tickCountPlus.bind(this)} size={"sm"} className={"d-inline"} variant={"light"}>+</Button> + </div> + </InputGroup> cm.</p> <Alert variant={"light"} className={"p-2"}><i className="ms-1 me-1 fa-solid fa-circle-info"></i> Appuyez ici <Button disabled={!this.state.active} onClick={this.zoomOnRuler.bind(this)} size={"sm"}><i className={"fa-solid fa-magnifying-glass-location"}></i></Button> pour placer la règle avec précision.</Alert> <div className={"d-flex flex-row"}> <Button className={"col-3"} variant={"success"} disabled={!this.state.active} onClick={this.terminate.bind(this)}>Terminé !</Button> + {DEBUG_MODE ? <> <InputGroup className={"ms-2"}> diff --git a/src/ui/welcome.tsx b/src/ui/welcome.tsx index 46a3892..064399d 100644 --- a/src/ui/welcome.tsx +++ b/src/ui/welcome.tsx @@ -1,6 +1,7 @@ import * as React from "react"; import Here from "../assets/images/here.svg"; import {Button} from "react-bootstrap"; +import {StepProps} from "./steps/step"; /** * L'état de l'affichage de l'accueil @@ -14,8 +15,8 @@ export interface WelcomeState { */ export class Welcome extends React.Component<{}, WelcomeState>{ - public constructor() { - super({}); + public constructor(props : {}) { + super(props); this.state = {visible: true} } diff --git a/tests/data/coords/circleCoords.test.ts b/tests/data/coords/circleCoords.test.ts new file mode 100644 index 0000000..764df6b --- /dev/null +++ b/tests/data/coords/circleCoords.test.ts @@ -0,0 +1,22 @@ +import * as paper from "paper"; +import {CircleCoords} from "../../../src/data/coords/circleCoords"; + +describe('Testing CircleCoords...', () => { + + let circleCoords = new CircleCoords(new paper.Point(7, 11), 10.5); + + it('bounds are correct', () => { + let bounds = circleCoords.bounds(); + expect(bounds.x).toBe(-3.5); + expect(bounds.y).toBe(0.5); + expect(bounds.width).toBe(21); + expect(bounds.height).toBe(21); + }); + + it('coords are correct', () => { + expect(circleCoords.radius).toBe(10.5); + expect(circleCoords.center.x).toBe(7); + expect(circleCoords.center.y).toBe(11); + }); + +}); \ No newline at end of file diff --git a/tests/data/dataExporter.test.ts b/tests/data/dataExporter.test.ts new file mode 100644 index 0000000..6df1b56 --- /dev/null +++ b/tests/data/dataExporter.test.ts @@ -0,0 +1,29 @@ +import {DataExporter} from "../../src/data/dataExporter"; +import {Fixtures} from "../fixtures/fixtures"; +import expectedResultsCsv from "../fixtures/Results_ExpJ1CrB9.csv"; + +describe('Testing DataExporter...', () => { + + /** + * Class under test + */ + let dataExporter = new DataExporter(); + + it('CSV metrics are correct', () => { + let labData = Fixtures.labData(); + let descriptorsCsv = dataExporter.exportPathDescriptorsAsCsv(labData, labData.blobMaskCoords); + expect(descriptorsCsv).toEqual(expectedResultsCsv); + }); + + it('Tick count may vary along with the ruler length', () => { + let labData = Fixtures.labData(); + + labData.rulerTickCount = 8; + labData.rulerCoords.end = labData.rulerCoords.start.add( + labData.rulerCoords.end.subtract(labData.rulerCoords.start).multiply(8).divide(10) + ) + + let descriptorsCsv = dataExporter.exportPathDescriptorsAsCsv(labData, labData.blobMaskCoords); + expect(descriptorsCsv).toEqual(expectedResultsCsv); + }); +}); \ No newline at end of file diff --git a/tests/fixtures/ExpJ1CrB9_Coord_Blob.txt b/tests/fixtures/ExpJ1CrB9_Coord_Blob.txt new file mode 100644 index 0000000..b75420b --- /dev/null +++ b/tests/fixtures/ExpJ1CrB9_Coord_Blob.txt @@ -0,0 +1,2422 @@ +851 785 +853 785 +856 785 +861 785 +863 785 +866 785 +868 785 +875 785 +878 785 +880 785 +882 782 +885 780 +890 778 +890 775 +895 773 +897 773 +899 773 +902 773 +904 773 +907 773 +909 773 +912 773 +916 770 +919 770 +924 770 +926 768 +928 768 +931 768 +933 766 +938 766 +941 766 +943 766 +948 766 +948 768 +953 768 +958 770 +960 773 +962 773 +967 775 +970 778 +972 780 +972 782 +974 782 +977 785 +979 787 +982 787 +984 787 +987 787 +989 787 +991 787 +996 787 +999 787 +1001 787 +1004 787 +1006 787 +1011 787 +1013 787 +1016 787 +1020 787 +1020 785 +1025 782 +1030 778 +1033 778 +1035 775 +1035 773 +1037 773 +1042 770 +1045 768 +1047 768 +1049 766 +1049 763 +1054 763 +1057 761 +1059 761 +1059 758 +1064 758 +1066 756 +1069 756 +1071 753 +1076 753 +1079 751 +1083 749 +1088 749 +1093 749 +1098 749 +1100 746 +1103 746 +1108 746 +1112 744 +1115 744 +1117 744 +1120 744 +1122 744 +1127 744 +1129 744 +1132 744 +1134 744 +1137 744 +1141 749 +1144 749 +1146 751 +1146 753 +1146 756 +1146 758 +1151 766 +1151 768 +1151 773 +1151 778 +1154 780 +1154 782 +1154 785 +1154 787 +1156 792 +1158 797 +1161 802 +1166 804 +1166 807 +1166 809 +1168 812 +1168 814 +1171 814 +1175 816 +1175 819 +1178 821 +1180 824 +1185 826 +1190 828 +1190 831 +1192 831 +1195 831 +1200 833 +1204 836 +1209 838 +1212 841 +1214 841 +1214 843 +1219 845 +1219 850 +1221 853 +1224 855 +1224 858 +1224 860 +1224 865 +1224 867 +1224 874 +1224 879 +1224 882 +1224 889 +1224 894 +1221 899 +1221 904 +1221 908 +1221 911 +1221 913 +1221 916 +1221 918 +1221 920 +1221 923 +1221 928 +1221 933 +1221 937 +1224 942 +1224 945 +1224 947 +1224 949 +1224 954 +1224 962 +1224 966 +1224 971 +1224 976 +1224 981 +1226 983 +1226 986 +1226 988 +1226 991 +1226 995 +1226 998 +1226 1000 +1226 1003 +1226 1005 +1226 1010 +1226 1012 +1226 1015 +1224 1020 +1219 1022 +1217 1022 +1214 1022 +1212 1025 +1209 1027 +1204 1029 +1200 1029 +1195 1034 +1192 1034 +1190 1034 +1187 1037 +1185 1037 +1185 1039 +1183 1041 +1183 1044 +1183 1046 +1175 1061 +1176 1061 +1176 1062 +1176 1065 +1176 1066 +1176 1069 +1176 1070 +1179 1074 +1179 1075 +1182 1076 +1184 1078 +1189 1080 +1193 1083 +1197 1086 +1200 1087 +1204 1089 +1208 1090 +1211 1092 +1214 1092 +1216 1092 +1218 1093 +1220 1094 +1221 1095 +1230 1098 +1237 1100 +1242 1101 +1244 1101 +1246 1101 +1247 1099 +1249 1099 +1251 1099 +1254 1098 +1259 1098 +1262 1096 +1264 1096 +1266 1096 +1267 1096 +1269 1096 +1270 1095 +1271 1095 +1274 1094 +1275 1094 +1278 1093 +1283 1093 +1288 1092 +1290 1092 +1291 1092 +1292 1092 +1294 1092 +1299 1092 +1303 1093 +1305 1094 +1306 1095 +1307 1096 +1308 1098 +1308 1099 +1308 1102 +1308 1103 +1308 1106 +1308 1109 +1308 1110 +1308 1113 +1308 1118 +1308 1119 +1308 1121 +1307 1124 +1305 1126 +1303 1130 +1301 1133 +1297 1137 +1297 1138 +1295 1140 +1294 1141 +1291 1141 +1289 1143 +1287 1143 +1284 1143 +1283 1143 +1281 1143 +1278 1143 +1274 1143 +1270 1142 +1267 1141 +1264 1140 +1263 1140 +1260 1138 +1259 1137 +1257 1136 +1254 1136 +1253 1135 +1252 1135 +1250 1135 +1247 1135 +1244 1134 +1239 1134 +1237 1134 +1236 1134 +1233 1136 +1230 1138 +1227 1139 +1225 1140 +1224 1141 +1223 1143 +1223 1144 +1223 1147 +1223 1149 +1223 1153 +1223 1156 +1224 1160 +1224 1163 +1226 1165 +1226 1167 +1226 1169 +1226 1170 +1227 1173 +1229 1177 +1229 1180 +1229 1183 +1230 1186 +1230 1188 +1230 1192 +1231 1195 +1232 1199 +1232 1201 +1232 1204 +1232 1206 +1232 1208 +1232 1210 +1232 1212 +1232 1214 +1232 1217 +1234 1220 +1235 1221 +1236 1222 +1236 1223 +1236 1224 +1236 1224 +1236 1226 +1236 1227 +1237 1228 +1237 1229 +1237 1231 +1238 1232 +1240 1234 +1240 1235 +1240 1237 +1240 1240 +1241 1241 +1242 1242 +1242 1244 +1242 1247 +1242 1251 +1242 1255 +1244 1261 +1246 1266 +1247 1271 +1248 1274 +1248 1276 +1249 1277 +1249 1278 +1249 1278 +1250 1279 +1250 1280 +1251 1281 +1253 1281 +1255 1281 +1257 1281 +1260 1281 +1266 1281 +1270 1281 +1274 1281 +1277 1281 +1282 1281 +1284 1281 +1288 1281 +1291 1281 +1294 1281 +1297 1281 +1297 1281 +1301 1281 +1304 1281 +1308 1281 +1309 1281 +1311 1282 +1311 1283 +1312 1284 +1314 1285 +1314 1286 +1317 1288 +1320 1291 +1320 1293 +1321 1294 +1321 1295 +1321 1296 +1321 1299 +1322 1303 +1323 1306 +1323 1309 +1323 1312 +1323 1314 +1323 1317 +1323 1321 +1323 1328 +1323 1330 +1323 1334 +1322 1335 +1321 1337 +1321 1339 +1320 1342 +1320 1345 +1319 1347 +1318 1348 +1318 1349 +1318 1349 +1324 1367 +1324 1369 +1324 1369 +1324 1372 +1324 1374 +1324 1375 +1324 1377 +1324 1379 +1324 1380 +1324 1382 +1324 1384 +1323 1385 +1323 1388 +1321 1389 +1321 1392 +1320 1394 +1319 1399 +1318 1400 +1316 1403 +1315 1406 +1314 1408 +1312 1412 +1312 1413 +1311 1419 +1310 1420 +1310 1423 +1309 1425 +1309 1427 +1309 1430 +1309 1433 +1309 1436 +1309 1439 +1309 1442 +1309 1444 +1309 1448 +1311 1452 +1314 1455 +1314 1456 +1314 1458 +1314 1460 +1314 1461 +1314 1462 +1314 1462 +1314 1463 +1314 1464 +1314 1467 +1314 1468 +1314 1470 +1314 1472 +1314 1474 +1314 1475 +1314 1478 +1313 1481 +1312 1484 +1312 1486 +1311 1487 +1311 1489 +1310 1491 +1309 1493 +1308 1496 +1308 1498 +1307 1499 +1307 1503 +1306 1505 +1306 1506 +1305 1507 +1303 1509 +1303 1512 +1301 1512 +1300 1514 +1299 1517 +1296 1520 +1293 1524 +1289 1530 +1286 1534 +1283 1539 +1279 1544 +1276 1549 +1274 1555 +1272 1558 +1271 1559 +1270 1561 +1270 1561 +1270 1562 +1270 1563 +1270 1565 +1269 1567 +1269 1568 +1269 1569 +1268 1572 +1266 1575 +1264 1579 +1264 1580 +1262 1584 +1262 1585 +1260 1586 +1259 1587 +1258 1588 +1258 1589 +1257 1589 +1256 1590 +1255 1591 +1253 1593 +1252 1593 +1250 1593 +1247 1596 +1245 1598 +1244 1599 +1241 1600 +1240 1601 +1240 1602 +1239 1603 +1239 1605 +1239 1605 +1239 1606 +1239 1607 +1239 1608 +1239 1609 +1239 1610 +1240 1611 +1240 1611 +1241 1613 +1242 1614 +1256 1625 +1256 1626 +1256 1627 +1257 1629 +1258 1631 +1259 1633 +1259 1636 +1260 1641 +1261 1647 +1261 1655 +1261 1658 +1261 1663 +1261 1666 +1261 1669 +1261 1670 +1261 1673 +1261 1674 +1260 1677 +1260 1680 +1260 1684 +1260 1685 +1260 1687 +1260 1689 +1260 1690 +1260 1693 +1260 1696 +1260 1698 +1260 1701 +1260 1703 +1260 1706 +1260 1707 +1262 1710 +1262 1714 +1265 1717 +1266 1719 +1267 1720 +1269 1722 +1273 1724 +1277 1725 +1279 1725 +1280 1725 +1281 1725 +1282 1725 +1283 1723 +1285 1722 +1286 1718 +1288 1716 +1288 1713 +1289 1712 +1290 1711 +1291 1709 +1293 1707 +1296 1704 +1297 1702 +1298 1701 +1300 1699 +1301 1698 +1303 1696 +1304 1693 +1305 1691 +1306 1689 +1308 1685 +1309 1684 +1310 1680 +1310 1677 +1311 1674 +1312 1672 +1314 1670 +1314 1669 +1314 1667 +1314 1665 +1315 1663 +1316 1662 +1317 1660 +1319 1658 +1322 1656 +1324 1654 +1326 1653 +1327 1652 +1329 1650 +1330 1650 +1330 1649 +1331 1649 +1332 1649 +1337 1649 +1338 1649 +1339 1649 +1340 1649 +1341 1649 +1344 1649 +1345 1651 +1347 1653 +1348 1654 +1348 1654 +1350 1660 +1352 1662 +1352 1665 +1352 1669 +1353 1672 +1353 1676 +1354 1679 +1354 1682 +1354 1686 +1355 1690 +1356 1692 +1357 1695 +1358 1696 +1359 1696 +1360 1699 +1363 1702 +1365 1704 +1366 1706 +1369 1706 +1369 1707 +1370 1707 +1372 1709 +1373 1711 +1374 1713 +1377 1717 +1378 1718 +1379 1718 +1380 1720 +1380 1722 +1380 1724 +1381 1726 +1381 1728 +1381 1729 +1381 1731 +1382 1733 +1382 1735 +1383 1736 +1383 1737 +1383 1738 +1383 1739 +1383 1742 +1381 1744 +1381 1746 +1381 1747 +1381 1749 +1381 1753 +1381 1755 +1381 1759 +1382 1760 +1383 1761 +1383 1763 +1383 1764 +1385 1767 +1387 1770 +1388 1770 +1388 1771 +1389 1772 +1391 1776 +1391 1777 +1392 1779 +1394 1780 +1394 1781 +1394 1782 +1396 1786 +1398 1788 +1400 1790 +1400 1791 +1401 1792 +1402 1793 +1402 1795 +1402 1796 +1402 1798 +1402 1799 +1402 1803 +1402 1805 +1402 1806 +1402 1808 +1402 1809 +1402 1810 +1402 1811 +1401 1812 +1400 1814 +1399 1815 +1399 1816 +1398 1817 +1398 1819 +1397 1819 +1397 1821 +1396 1823 +1396 1824 +1395 1825 +1395 1825 +1395 1826 +1395 1828 +1395 1830 +1395 1831 +1394 1832 +1394 1833 +1394 1835 +1394 1841 +1394 1845 +1394 1848 +1394 1850 +1394 1851 +1394 1852 +1394 1854 +1395 1854 +1396 1855 +1397 1856 +1396 1849 +1396 1850 +1397 1851 +1397 1852 +1398 1854 +1399 1857 +1399 1861 +1401 1864 +1401 1868 +1402 1870 +1402 1872 +1404 1872 +1404 1873 +1404 1874 +1404 1875 +1404 1876 +1404 1877 +1404 1878 +1404 1880 +1404 1881 +1404 1882 +1404 1883 +1404 1884 +1402 1884 +1401 1886 +1400 1886 +1399 1886 +1398 1888 +1397 1890 +1395 1890 +1391 1892 +1389 1892 +1387 1892 +1385 1893 +1382 1895 +1380 1896 +1379 1896 +1377 1898 +1375 1900 +1374 1900 +1373 1901 +1371 1902 +1369 1903 +1369 1904 +1368 1904 +1367 1904 +1365 1904 +1363 1904 +1363 1905 +1359 1905 +1357 1907 +1355 1907 +1351 1908 +1349 1909 +1346 1910 +1344 1911 +1343 1912 +1341 1912 +1335 1912 +1332 1912 +1329 1915 +1327 1915 +1325 1915 +1321 1915 +1318 1915 +1312 1915 +1308 1915 +1303 1915 +1300 1916 +1297 1916 +1294 1917 +1292 1917 +1290 1917 +1287 1917 +1285 1917 +1283 1917 +1279 1917 +1277 1917 +1271 1917 +1263 1917 +1260 1919 +1259 1919 +1258 1919 +1257 1919 +1255 1919 +1253 1919 +1251 1919 +1249 1919 +1248 1919 +1247 1919 +1246 1919 +1245 1920 +1242 1921 +1241 1921 +1240 1922 +1239 1922 +1236 1922 +1235 1923 +1233 1923 +1231 1923 +1229 1923 +1227 1923 +1225 1923 +1223 1923 +1222 1923 +1221 1923 +1220 1923 +1217 1923 +1217 1922 +1215 1921 +1213 1920 +1209 1919 +1207 1917 +1205 1917 +1205 1916 +1205 1915 +1204 1912 +1203 1911 +1203 1910 +1202 1910 +1201 1909 +1201 1908 +1199 1908 +1198 1908 +1197 1908 +1196 1908 +1195 1908 +1195 1907 +1193 1906 +1191 1905 +1190 1905 +1189 1904 +1187 1904 +1185 1902 +1185 1901 +1183 1900 +1183 1899 +1182 1898 +1181 1896 +1180 1895 +1180 1894 +1179 1893 +1179 1892 +1178 1891 +1177 1890 +1177 1889 +1177 1888 +1176 1887 +1176 1885 +1174 1883 +1174 1882 +1174 1881 +1174 1880 +1174 1879 +1174 1878 +1174 1877 +1174 1876 +1174 1874 +1174 1872 +1173 1871 +1173 1869 +1173 1866 +1173 1863 +1171 1860 +1171 1858 +1170 1855 +1168 1852 +1167 1849 +1166 1847 +1165 1844 +1163 1842 +1161 1837 +1160 1835 +1159 1833 +1158 1832 +1157 1830 +1154 1826 +1153 1825 +1151 1824 +1149 1822 +1148 1822 +1147 1821 +1145 1820 +1143 1818 +1141 1818 +1140 1817 +1138 1816 +1137 1816 +1135 1816 +1134 1816 +1132 1816 +1130 1815 +1129 1815 +1127 1814 +1124 1813 +1121 1812 +1119 1812 +1116 1812 +1111 1814 +1106 1814 +1105 1814 +1103 1814 +1101 1815 +1098 1815 +1095 1817 +1091 1818 +1087 1818 +1083 1822 +1079 1824 +1077 1825 +1074 1826 +1071 1828 +1067 1829 +1065 1831 +1063 1832 +1061 1834 +1059 1835 +1057 1836 +1056 1838 +1052 1838 +1049 1840 +1047 1840 +1047 1842 +1045 1843 +1044 1844 +1043 1845 +1041 1846 +1040 1846 +1037 1846 +1035 1846 +1031 1846 +1029 1846 +1028 1846 +1027 1846 +1025 1846 +1020 1842 +1017 1841 +1014 1839 +1012 1838 +1011 1838 +1011 1836 +1010 1836 +1008 1834 +1007 1833 +1006 1831 +1006 1830 +1006 1828 +1005 1827 +1005 1826 +1004 1824 +1002 1821 +1000 1819 +999 1818 +998 1817 +997 1816 +993 1814 +992 1814 +989 1813 +989 1812 +986 1809 +986 1809 +985 1808 +981 1806 +976 1803 +974 1801 +972 1799 +970 1796 +970 1794 +966 1792 +965 1787 +963 1785 +961 1784 +961 1783 +960 1782 +959 1782 +959 1782 +956 1782 +954 1782 +954 1782 +953 1782 +951 1784 +950 1786 +949 1788 +944 1794 +944 1797 +944 1801 +944 1803 +944 1804 +944 1807 +944 1811 +944 1813 +944 1816 +944 1819 +944 1821 +944 1823 +944 1824 +944 1824 +944 1826 +944 1828 +944 1829 +944 1829 +944 1831 +944 1831 +943 1831 +941 1831 +940 1831 +936 1830 +933 1829 +933 1829 +932 1829 +931 1829 +930 1829 +929 1829 +928 1831 +928 1833 +928 1834 +927 1834 +926 1837 +926 1838 +926 1839 +924 1840 +923 1840 +920 1841 +919 1841 +917 1841 +916 1841 +915 1841 +914 1841 +912 1841 +912 1841 +911 1840 +908 1839 +906 1839 +904 1838 +903 1837 +902 1836 +901 1836 +901 1835 +899 1834 +898 1833 +896 1831 +896 1831 +893 1829 +892 1829 +891 1828 +890 1827 +889 1826 +886 1825 +885 1824 +884 1824 +882 1823 +881 1823 +880 1821 +880 1820 +879 1819 +878 1818 +878 1818 +878 1817 +878 1816 +878 1814 +878 1813 +878 1812 +878 1811 +878 1809 +877 1808 +877 1808 +877 1806 +876 1803 +875 1803 +875 1801 +875 1800 +874 1798 +872 1797 +872 1796 +872 1794 +872 1792 +872 1791 +872 1790 +872 1789 +872 1787 +874 1785 +874 1783 +875 1782 +879 1781 +880 1779 +882 1777 +884 1776 +886 1774 +888 1771 +889 1771 +894 1768 +896 1767 +899 1766 +901 1764 +901 1764 +902 1761 +904 1760 +905 1760 +906 1759 +907 1757 +909 1755 +909 1753 +909 1750 +909 1749 +911 1746 +911 1745 +911 1742 +911 1736 +911 1732 +910 1730 +909 1727 +908 1726 +907 1726 +907 1725 +907 1725 +904 1725 +903 1725 +900 1725 +897 1727 +894 1729 +891 1732 +888 1734 +887 1736 +884 1741 +882 1744 +881 1745 +880 1746 +880 1747 +879 1748 +877 1749 +875 1749 +871 1750 +867 1751 +862 1753 +856 1755 +855 1755 +854 1755 +850 1755 +846 1755 +841 1755 +838 1755 +835 1755 +834 1755 +833 1755 +831 1755 +830 1755 +827 1755 +826 1757 +825 1757 +824 1757 +823 1757 +822 1757 +820 1757 +818 1757 +815 1757 +812 1757 +812 1757 +811 1757 +810 1757 +808 1757 +807 1757 +806 1757 +805 1757 +803 1757 +802 1757 +801 1756 +801 1756 +800 1755 +800 1755 +799 1754 +796 1754 +795 1752 +793 1752 +791 1751 +791 1751 +789 1751 +788 1751 +787 1751 +786 1751 +786 1750 +785 1750 +784 1750 +783 1749 +781 1749 +779 1747 +778 1747 +777 1746 +776 1745 +775 1745 +775 1743 +775 1742 +774 1741 +773 1740 +771 1739 +770 1738 +770 1737 +768 1736 +766 1736 +766 1735 +763 1734 +760 1734 +759 1733 +759 1732 +758 1731 +754 1730 +754 1729 +752 1729 +750 1729 +749 1729 +749 1728 +748 1727 +747 1726 +744 1725 +742 1724 +741 1724 +740 1723 +739 1722 +738 1721 +738 1720 +735 1718 +733 1718 +733 1718 +732 1717 +731 1717 +729 1715 +726 1713 +726 1713 +725 1712 +723 1711 +722 1710 +722 1709 +722 1708 +722 1708 +722 1707 +722 1700 +722 1699 +722 1698 +722 1697 +722 1696 +722 1695 +722 1692 +722 1690 +722 1688 +721 1685 +720 1683 +720 1681 +719 1679 +719 1677 +719 1675 +719 1672 +719 1672 +718 1671 +718 1670 +717 1668 +715 1667 +715 1665 +712 1663 +711 1661 +710 1659 +707 1657 +706 1656 +701 1652 +699 1650 +697 1649 +696 1647 +694 1646 +690 1644 +689 1643 +687 1643 +686 1642 +685 1642 +683 1642 +682 1641 +681 1640 +679 1640 +676 1639 +674 1639 +673 1638 +671 1636 +669 1636 +668 1635 +668 1634 +667 1633 +666 1633 +666 1633 +666 1632 +665 1631 +664 1630 +664 1628 +664 1626 +662 1625 +662 1624 +662 1621 +662 1619 +662 1617 +662 1617 +662 1615 +662 1614 +662 1613 +662 1612 +662 1611 +662 1610 +662 1608 +662 1607 +662 1605 +662 1605 +662 1604 +662 1603 +662 1601 +662 1598 +662 1598 +661 1596 +660 1596 +659 1596 +659 1595 +659 1594 +658 1593 +657 1591 +657 1591 +655 1590 +655 1589 +655 1587 +652 1587 +651 1585 +651 1584 +651 1584 +651 1583 +650 1582 +648 1580 +647 1578 +647 1577 +646 1577 +646 1576 +645 1576 +645 1575 +644 1574 +643 1573 +643 1573 +643 1572 +643 1570 +643 1570 +643 1569 +641 1567 +640 1565 +639 1562 +638 1558 +638 1557 +638 1554 +638 1552 +638 1551 +638 1550 +638 1550 +638 1549 +638 1548 +637 1547 +636 1547 +636 1546 +634 1545 +633 1544 +631 1543 +631 1542 +631 1541 +631 1540 +631 1540 +631 1539 +630 1538 +629 1537 +629 1536 +629 1536 +628 1534 +627 1534 +624 1532 +623 1532 +621 1531 +620 1531 +618 1531 +616 1531 +612 1529 +609 1527 +606 1526 +606 1526 +606 1525 +604 1523 +604 1522 +604 1520 +603 1517 +602 1515 +601 1514 +601 1513 +601 1513 +601 1510 +599 1508 +599 1506 +599 1506 +599 1505 +599 1503 +599 1503 +599 1502 +599 1501 +599 1500 +599 1499 +599 1498 +590 1480 +590 1479 +590 1478 +589 1477 +589 1477 +588 1475 +588 1474 +587 1473 +587 1472 +587 1471 +587 1471 +587 1469 +587 1467 +587 1466 +587 1464 +587 1463 +587 1463 +587 1461 +587 1460 +587 1459 +587 1456 +587 1453 +587 1449 +587 1448 +587 1446 +587 1444 +587 1443 +587 1442 +587 1441 +587 1440 +587 1434 +587 1429 +588 1424 +588 1423 +589 1423 +589 1423 +590 1422 +590 1421 +591 1421 +592 1421 +592 1420 +593 1419 +593 1419 +593 1419 +594 1419 +594 1419 +594 1419 +595 1419 +596 1419 +597 1419 +597 1419 +597 1418 +597 1418 +598 1416 +599 1415 +599 1413 +599 1411 +599 1409 +599 1407 +599 1405 +599 1403 +599 1401 +598 1400 +597 1399 +597 1399 +596 1398 +595 1398 +595 1398 +594 1397 +594 1397 +593 1396 +592 1395 +592 1394 +592 1394 +592 1393 +592 1392 +592 1391 +593 1389 +594 1389 +594 1388 +595 1388 +596 1387 +596 1387 +597 1386 +597 1386 +597 1386 +599 1385 +599 1384 +601 1382 +602 1381 +603 1381 +605 1378 +605 1378 +606 1378 +606 1378 +607 1377 +609 1377 +610 1377 +613 1376 +615 1376 +620 1375 +622 1375 +623 1374 +624 1374 +624 1374 +625 1374 +626 1374 +627 1374 +628 1374 +628 1374 +628 1373 +629 1373 +629 1373 +629 1372 +630 1372 +631 1371 +632 1370 +633 1368 +634 1366 +634 1365 +634 1364 +634 1363 +634 1363 +634 1362 +634 1362 +634 1361 +633 1360 +632 1359 +631 1358 +631 1358 +631 1358 +630 1357 +629 1356 +629 1355 +629 1353 +629 1353 +628 1351 +628 1350 +628 1349 +628 1348 +627 1348 +627 1348 +626 1347 +624 1346 +622 1345 +622 1345 +621 1344 +620 1343 +619 1343 +618 1343 +618 1342 +617 1341 +616 1340 +615 1340 +614 1340 +613 1339 +612 1339 +611 1338 +611 1337 +606 1335 +605 1334 +601 1331 +600 1331 +599 1330 +598 1330 +597 1329 +597 1329 +596 1328 +596 1327 +595 1326 +595 1325 +594 1323 +594 1322 +593 1321 +593 1319 +593 1316 +592 1312 +592 1310 +592 1309 +592 1308 +592 1307 +592 1306 +592 1305 +592 1303 +592 1302 +591 1302 +591 1301 +591 1300 +591 1298 +591 1297 +591 1296 +591 1295 +591 1294 +591 1292 +591 1291 +591 1290 +591 1289 +591 1288 +591 1287 +591 1286 +592 1285 +592 1284 +592 1283 +592 1283 +593 1282 +593 1282 +593 1281 +593 1281 +594 1281 +594 1281 +595 1281 +595 1281 +596 1280 +597 1280 +599 1280 +601 1280 +604 1280 +605 1280 +606 1280 +607 1280 +607 1280 +608 1280 +611 1280 +613 1280 +614 1280 +616 1280 +617 1280 +619 1280 +620 1279 +621 1279 +622 1279 +625 1278 +627 1278 +629 1278 +631 1277 +631 1276 +632 1275 +633 1275 +635 1274 +636 1274 +637 1273 +638 1273 +638 1273 +639 1272 +639 1272 +640 1272 +640 1272 +641 1271 +641 1270 +641 1270 +641 1270 +641 1270 +641 1269 +641 1269 +641 1269 +641 1267 +639 1266 +638 1265 +637 1265 +636 1264 +635 1263 +633 1262 +633 1261 +631 1260 +629 1259 +628 1258 +628 1258 +627 1257 +626 1256 +626 1256 +625 1255 +625 1254 +625 1254 +625 1254 +624 1253 +624 1253 +624 1253 +624 1252 +623 1252 +623 1251 +622 1250 +621 1249 +621 1249 +620 1247 +619 1246 +619 1246 +618 1245 +618 1245 +617 1244 +617 1244 +617 1244 +616 1243 +616 1242 +616 1242 +616 1242 +615 1240 +614 1238 +614 1237 +613 1236 +613 1236 +614 1235 +614 1223 +614 1222 +614 1221 +614 1221 +614 1220 +614 1219 +614 1218 +614 1217 +614 1217 +614 1216 +614 1215 +614 1214 +614 1214 +614 1213 +614 1212 +614 1211 +614 1210 +614 1209 +614 1209 +614 1208 +614 1208 +614 1207 +614 1207 +614 1207 +613 1207 +612 1206 +611 1205 +609 1205 +607 1204 +607 1204 +605 1203 +604 1203 +602 1203 +600 1203 +598 1203 +597 1203 +596 1203 +595 1203 +595 1203 +594 1203 +593 1203 +592 1203 +590 1204 +589 1204 +587 1204 +586 1204 +584 1204 +582 1204 +581 1204 +579 1204 +579 1203 +578 1203 +577 1202 +576 1202 +574 1201 +572 1200 +571 1200 +571 1200 +570 1199 +569 1198 +568 1198 +568 1197 +568 1195 +567 1194 +566 1193 +566 1193 +566 1192 +566 1192 +566 1191 +566 1190 +566 1189 +566 1189 +566 1188 +566 1187 +566 1186 +566 1186 +567 1184 +567 1184 +568 1183 +568 1182 +568 1181 +569 1180 +569 1180 +570 1180 +571 1179 +572 1179 +573 1179 +573 1178 +574 1178 +575 1178 +578 1178 +579 1177 +580 1177 +582 1177 +584 1177 +585 1177 +587 1177 +589 1178 +590 1178 +591 1179 +592 1179 +595 1180 +596 1181 +597 1181 +597 1181 +597 1181 +598 1182 +599 1182 +601 1183 +604 1185 +604 1185 +606 1186 +607 1186 +608 1186 +609 1186 +609 1186 +610 1186 +610 1186 +611 1185 +611 1185 +612 1184 +612 1183 +613 1183 +613 1182 +614 1181 +614 1181 +614 1179 +615 1179 +615 1178 +615 1178 +615 1177 +616 1177 +616 1176 +617 1175 +617 1174 +617 1173 +617 1172 +617 1172 +617 1172 +617 1171 +617 1170 +618 1170 +618 1169 +618 1169 +618 1168 +618 1167 +619 1166 +620 1165 +620 1165 +621 1163 +621 1163 +621 1162 +621 1161 +622 1160 +622 1159 +622 1158 +622 1158 +622 1156 +623 1155 +624 1154 +624 1152 +624 1152 +624 1151 +624 1151 +624 1150 +624 1149 +624 1148 +622 1146 +622 1145 +622 1144 +621 1143 +620 1140 +618 1136 +618 1134 +617 1132 +617 1132 +616 1129 +615 1128 +615 1128 +616 1127 +616 1127 +617 1126 +618 1125 +618 1124 +618 1123 +618 1122 +619 1122 +620 1122 +622 1121 +622 1120 +623 1120 +623 1120 +624 1119 +624 1119 +625 1118 +625 1118 +625 1117 +625 1111 +625 1110 +625 1109 +626 1108 +626 1106 +626 1105 +626 1102 +625 1100 +625 1099 +625 1098 +625 1098 +625 1097 +624 1094 +623 1094 +623 1093 +623 1092 +622 1091 +622 1090 +621 1088 +621 1087 +621 1086 +621 1085 +621 1085 +620 1084 +620 1083 +620 1083 +620 1082 +620 1082 +620 1082 +620 1081 +620 1081 +620 1080 +620 1079 +620 1079 +620 1078 +620 1078 +620 1078 +621 1076 +621 1075 +622 1075 +622 1074 +623 1074 +623 1074 +624 1073 +625 1073 +625 1072 +625 1072 +625 1071 +626 1071 +627 1070 +627 1070 +627 1069 +627 1069 +628 1069 +628 1068 +628 1068 +629 1068 +629 1068 +630 1068 +632 1068 +634 1067 +636 1067 +636 1067 +636 1067 +637 1067 +639 1067 +640 1067 +640 1067 +640 1067 +641 1067 +642 1067 +643 1067 +644 1067 +645 1067 +645 1067 +646 1067 +646 1067 +647 1067 +648 1067 +648 1067 +649 1067 +649 1067 +649 1067 +650 1067 +650 1067 +651 1067 +651 1066 +651 1066 +651 1066 +651 1066 +652 1065 +652 1064 +652 1064 +653 1062 +653 1062 +653 1061 +653 1060 +653 1059 +653 1059 +653 1058 +653 1057 +653 1056 +654 1053 +654 1052 +654 1051 +654 1049 +655 1048 +655 1047 +655 1047 +655 1047 +656 1046 +656 1046 +656 1045 +656 1045 +656 1045 +657 1044 +657 1044 +657 1043 +657 1043 +657 1043 +657 1042 +658 1042 +658 1041 +658 1040 +659 1040 +659 1040 +660 1039 +660 1039 +661 1038 +661 1037 +662 1036 +662 1035 +663 1034 +664 1031 +665 1029 +666 1028 +667 1027 +667 1026 +668 1025 +668 1024 +669 1023 +669 1022 +669 1022 +669 1022 +669 1022 +669 1021 +670 1021 +670 1021 +671 1020 +671 1019 +671 1018 +672 1018 +672 1017 +672 1016 +672 1016 +672 1016 +672 1014 +672 1013 +672 1012 +672 1011 +672 1011 +672 1011 +672 1003 +673 1003 +673 1002 +673 1002 +674 1000 +676 998 +677 996 +678 995 +678 994 +679 993 +680 992 +681 990 +682 989 +683 986 +684 985 +685 985 +685 985 +686 984 +686 984 +687 983 +688 982 +688 980 +689 979 +689 978 +690 976 +690 974 +690 972 +691 972 +691 970 +691 969 +691 966 +691 965 +691 964 +691 963 +692 962 +692 961 +692 960 +692 959 +693 959 +693 958 +693 957 +693 955 +693 955 +694 954 +694 953 +694 952 +695 952 +695 951 +695 951 +696 949 +697 948 +697 946 +698 943 +699 942 +699 942 +699 941 +700 941 +700 941 +701 941 +702 940 +704 938 +706 937 +707 936 +707 935 +707 935 +708 935 +708 934 +709 933 +709 932 +710 930 +711 929 +712 928 +714 926 +717 920 +718 918 +719 916 +719 915 +720 915 +720 915 +720 915 +721 915 +722 914 +723 914 +723 913 +723 913 +723 913 +724 913 +724 913 +724 912 +724 912 +724 912 +725 912 +725 911 +725 911 +725 910 +737 907 +737 907 +738 905 +738 904 +740 903 +740 902 +740 901 +740 900 +740 899 +738 898 +737 896 +733 895 +733 894 +733 894 +733 894 +733 893 +733 892 +732 891 +732 890 +732 888 +732 887 +732 886 +731 884 +731 882 +731 880 +731 878 +731 877 +731 876 +731 874 +731 874 +732 873 +732 873 +732 872 +734 870 +735 868 +735 867 +736 867 +736 867 +737 865 +738 864 +740 862 +741 861 +742 859 +744 858 +745 857 +747 856 +748 855 +750 854 +752 853 +754 852 +756 851 +757 849 +759 849 +760 848 +762 847 +764 845 +765 844 +767 844 +767 843 +769 842 +771 842 +772 841 +773 841 +774 841 +775 840 +777 840 +778 840 +779 840 +780 840 +781 840 +783 840 +783 840 +784 840 +785 840 +785 841 +786 842 +787 842 +787 843 +787 843 +787 844 +787 845 +787 846 +787 847 +787 848 +787 849 +787 850 +787 852 +787 852 +788 854 +788 855 +788 858 +788 859 +788 862 +788 863 +789 865 +790 867 +790 867 +790 869 +790 872 +790 873 +790 874 +790 875 +790 876 +790 877 +791 878 +791 879 +791 880 +792 882 +792 883 +792 883 +793 884 +793 885 +795 887 +796 889 +797 890 +797 891 +798 891 +800 892 +801 891 +802 890 +802 889 +802 887 +803 886 +803 884 +803 882 +803 879 +803 877 +802 874 +802 872 +802 870 +801 865 +800 863 +799 861 +799 860 +799 857 +799 856 +798 854 +798 853 +798 852 +798 851 +798 850 +798 848 +798 847 +798 846 +798 846 +798 845 +799 844 +800 843 +801 843 +801 842 +803 841 +804 841 +806 841 +806 841 +807 841 +808 841 +809 841 +809 841 +810 841 +813 842 +814 843 +815 843 +816 843 +816 842 +816 842 +816 842 +816 841 +816 840 +816 839 +815 839 +815 838 +814 838 +814 837 +813 836 +812 835 +812 834 +811 834 +810 832 +810 831 +809 830 +809 830 +808 830 +808 829 +808 829 +808 827 +808 827 +808 826 +808 825 +809 820 +811 816 +812 812 +813 810 +814 810 +814 810 +815 810 +815 810 +817 810 +821 810 +824 810 +827 810 +828 810 +829 810 +830 810 +831 810 +832 808 +832 807 +833 807 +833 807 +834 806 +835 805 +837 804 +838 804 +839 803 +839 803 +840 802 +840 802 +842 802 +844 802 +846 802 +850 796 +851 796 +851 796 +851 796 +851 796 +851 795 diff --git a/tests/fixtures/Results_ExpJ1CrB9.csv b/tests/fixtures/Results_ExpJ1CrB9.csv new file mode 100644 index 0000000..6d2caa0 --- /dev/null +++ b/tests/fixtures/Results_ExpJ1CrB9.csv @@ -0,0 +1,2 @@ + ,Label,Area,Perim.,Circ.,AR,Round,Solidity +1,ExpJ1CrB9.jpg,33.4,33.93,0.365,1.625,0.615,0.871 \ No newline at end of file diff --git a/tests/fixtures/fixtures.ts b/tests/fixtures/fixtures.ts new file mode 100644 index 0000000..4c85fd4 --- /dev/null +++ b/tests/fixtures/fixtures.ts @@ -0,0 +1,37 @@ +/** + * Une classe utilitaire pour données mockées + */ +import expJ1CrB9CoordBlobTxt from './ExpJ1CrB9_Coord_Blob.txt'; +import {DataImporter} from "../../src/data/dataImporter"; +import {LabData} from "../../src/lab"; +import {VectorCoords} from "../../src/data/coords/vectorCoords"; +import {EllipseCoords} from "../../src/data/coords/ellipseCoords"; + +/** + * Charge des données de tes + */ +export class Fixtures { + + /** + * Pour charger les données brutes + */ + private static dataImporter = new DataImporter(); + + /** + * Contenu de ExpJ1CrB9_Coord_Blob.txt + */ + public static labData() : LabData { + return { + filename: "ExpJ1CrB9.jpg", + pictureSize: new paper.Size(2250, 4000), + rulerCoords: new VectorCoords( new paper.Point(542,438), new paper.Point(1929, 398)), + rulerTickCount : 10, + petriDishCoords: new EllipseCoords(new paper.Point(1172, 1305), 631, 625), + blobMaskCoords : this.dataImporter.import(expJ1CrB9CoordBlobTxt), + } + } + + + + +} \ No newline at end of file diff --git a/tests/index.ts b/tests/index.ts index ffe8c21..ac57222 100644 --- a/tests/index.ts +++ b/tests/index.ts @@ -8,5 +8,4 @@ let canvas = document.createElement('canvas'); canvas.width = 1224; canvas.height = 768; -paper.setup(canvas); -console.log("canvas inited") \ No newline at end of file +paper.setup(canvas); \ No newline at end of file diff --git a/webpack.common.js b/webpack.common.js index f5f2f2b..c9047f6 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -12,6 +12,10 @@ module.exports = { use: 'ts-loader', exclude: /node_modules/, }, + { + test: /\.(txt|csv)/, + type: 'asset/source', + }, { test: /\.svg$/, use: ['@svgr/webpack'], -- GitLab