From 208e79551cc3f6181221b1ed51fa77863c4d0721 Mon Sep 17 00:00:00 2001 From: Alexandre <alexandre.maintier.etu@meleze07.iut-infobio.priv.univ-lille1.fr> Date: Fri, 4 Apr 2025 14:27:53 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20des=20fichiers=20de=20qualit=C3=A9=20de?= =?UTF-8?q?v?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/qu-tp01.jar | Bin 0 -> 9558 bytes lib/res02-tpQU.jar | Bin 0 -> 13355 bytes src/tpQU/tp01/Main.java | 11 + src/tpQU/tp01/controlepkg1/A.java | 13 + src/tpQU/tp01/controlepkg2/B.java | 9 + src/tpQU/tp01/controlepkg2/sspkg/C.java | 19 ++ src/tpQU/tp01/controlpkg1/qu-tp01.jar | Bin 0 -> 9558 bytes src/tpQU/tp01/fifth/B.java | 12 + src/tpQU/tp01/first/A.java | 22 ++ src/tpQU/tp01/fourth/A.java | 19 ++ src/tpQU/tp01/second/A.java | 18 ++ src/tpQU/tp01/second/B.java | 8 + src/tpQU/tp01/third/A.java | 7 + src/tpQU/tp02/ToDoList.html | 360 ++++++++++++++++++++++++ src/tpQU/tp02/WarriorCard.java | 65 +++++ test/tpQU/tp02/AgendaTest.java | 56 ++++ test/tpQU/tp02/EventTest.java | 96 +++++++ test/tpQU/tp02/WarriorCardTest.java | 47 ++++ 18 files changed, 762 insertions(+) create mode 100644 lib/qu-tp01.jar create mode 100644 lib/res02-tpQU.jar create mode 100644 src/tpQU/tp01/Main.java create mode 100644 src/tpQU/tp01/controlepkg1/A.java create mode 100644 src/tpQU/tp01/controlepkg2/B.java create mode 100644 src/tpQU/tp01/controlepkg2/sspkg/C.java create mode 100644 src/tpQU/tp01/controlpkg1/qu-tp01.jar create mode 100644 src/tpQU/tp01/fifth/B.java create mode 100644 src/tpQU/tp01/first/A.java create mode 100644 src/tpQU/tp01/fourth/A.java create mode 100644 src/tpQU/tp01/second/A.java create mode 100644 src/tpQU/tp01/second/B.java create mode 100644 src/tpQU/tp01/third/A.java create mode 100644 src/tpQU/tp02/ToDoList.html create mode 100644 src/tpQU/tp02/WarriorCard.java create mode 100755 test/tpQU/tp02/AgendaTest.java create mode 100644 test/tpQU/tp02/EventTest.java create mode 100755 test/tpQU/tp02/WarriorCardTest.java diff --git a/lib/qu-tp01.jar b/lib/qu-tp01.jar new file mode 100644 index 0000000000000000000000000000000000000000..f410533d96cf77f4701143887c832810e30800f7 GIT binary patch literal 9558 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 M7GYqB6#yk30M(UGk^lez literal 0 HcmV?d00001 diff --git a/lib/res02-tpQU.jar b/lib/res02-tpQU.jar new file mode 100644 index 0000000000000000000000000000000000000000..3b18a48ebc9aeff4f8db5af89661078dfc1541ab GIT binary patch literal 13355 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 literal 0 HcmV?d00001 diff --git a/src/tpQU/tp01/Main.java b/src/tpQU/tp01/Main.java new file mode 100644 index 0000000..6718de3 --- /dev/null +++ b/src/tpQU/tp01/Main.java @@ -0,0 +1,11 @@ +import controlepkg2.sspkg.C; +import controlepkg1.A; +import controlepkg2.B; +import controlpkg.D; + +class Main{ + A triste = new A("triste"); + B chapeau = new B(); + C pointu = new C("pointu", 42); + D grand = new A("grand"); +} diff --git a/src/tpQU/tp01/controlepkg1/A.java b/src/tpQU/tp01/controlepkg1/A.java new file mode 100644 index 0000000..9f166a3 --- /dev/null +++ b/src/tpQU/tp01/controlepkg1/A.java @@ -0,0 +1,13 @@ +package controlepkg1; + +public class A { + private String aLabel; + + public A(String aLabel) { + this.aLabel = aLabel; + } + @Override + public String toString() { + return "A [aLabel=" + aLabel + "]"; + } +} diff --git a/src/tpQU/tp01/controlepkg2/B.java b/src/tpQU/tp01/controlepkg2/B.java new file mode 100644 index 0000000..47d16fb --- /dev/null +++ b/src/tpQU/tp01/controlepkg2/B.java @@ -0,0 +1,9 @@ +package controlepkg2; + +public class B { + private int aNumber = 42; + @Override + public String toString() { + return "B [aNumber=" + aNumber + "]"; + } +} diff --git a/src/tpQU/tp01/controlepkg2/sspkg/C.java b/src/tpQU/tp01/controlepkg2/sspkg/C.java new file mode 100644 index 0000000..41db448 --- /dev/null +++ b/src/tpQU/tp01/controlepkg2/sspkg/C.java @@ -0,0 +1,19 @@ +package controlepkg2.sspkg; + +public class C { + private String aLabel; + private int aNumber; + + public C(String aLabel, int aNumber) { + this.aLabel = aLabel; + this.aNumber = aNumber; + } + public String getALabel() {return aLabel;} + public void setALabel(String aLabel) {this.aLabel = aLabel;} + public int getANumber() {return aNumber;} + public void setANumber(int aNumber) {this.aNumber = aNumber;} + @Override + public String toString() { + return "C [aLabel=" + aLabel + ", aNumber=" + aNumber + "]"; + } +} diff --git a/src/tpQU/tp01/controlpkg1/qu-tp01.jar b/src/tpQU/tp01/controlpkg1/qu-tp01.jar new file mode 100644 index 0000000000000000000000000000000000000000..f410533d96cf77f4701143887c832810e30800f7 GIT binary patch literal 9558 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 M7GYqB6#yk30M(UGk^lez literal 0 HcmV?d00001 diff --git a/src/tpQU/tp01/fifth/B.java b/src/tpQU/tp01/fifth/B.java new file mode 100644 index 0000000..52ee171 --- /dev/null +++ b/src/tpQU/tp01/fifth/B.java @@ -0,0 +1,12 @@ +package fifth; + +import fourth.A; + +class B { + + public static void main(String[] args) { + System.out.println("class B -- main()"); + A a = new A(); + System.out.println(a + " again"); + } +} \ No newline at end of file diff --git a/src/tpQU/tp01/first/A.java b/src/tpQU/tp01/first/A.java new file mode 100644 index 0000000..6f6a9c5 --- /dev/null +++ b/src/tpQU/tp01/first/A.java @@ -0,0 +1,22 @@ +class A{ + String label = "42"; + + A(){ + ; + } + + A(String label){ + this.label = label; + } + + public String toString(){ + return this.label; + } + + public static void main(String[] args){ + A a1 = new A(); + A a2 = new A("a choisir"); + System.out.println(a1); + System.out.println(a2); + } +} \ No newline at end of file diff --git a/src/tpQU/tp01/fourth/A.java b/src/tpQU/tp01/fourth/A.java new file mode 100644 index 0000000..4531de6 --- /dev/null +++ b/src/tpQU/tp01/fourth/A.java @@ -0,0 +1,19 @@ +package fourth; +public class A{ + String label = "42"; + + public A(){ + ; + } + + public A(String label){ + this.label = label; + } + + public String toString(){ + return this.label; + } + + // javac second/B.java -d ../bin -cp ../cp + +} \ No newline at end of file diff --git a/src/tpQU/tp01/second/A.java b/src/tpQU/tp01/second/A.java new file mode 100644 index 0000000..2547c13 --- /dev/null +++ b/src/tpQU/tp01/second/A.java @@ -0,0 +1,18 @@ +class A{ + String label = "42"; + + A(){ + ; + } + + A(String label){ + this.label = label; + } + + public String toString(){ + return this.label; + } + + // javac second/B.java -d ../bin -cp ../cp + +} \ No newline at end of file diff --git a/src/tpQU/tp01/second/B.java b/src/tpQU/tp01/second/B.java new file mode 100644 index 0000000..fb5b7a3 --- /dev/null +++ b/src/tpQU/tp01/second/B.java @@ -0,0 +1,8 @@ +class B { + + public static void main(String[] args) { + System.out.println("class B -- main()"); + A a = new A(); + System.out.println(a + " again"); + } +} \ No newline at end of file diff --git a/src/tpQU/tp01/third/A.java b/src/tpQU/tp01/third/A.java new file mode 100644 index 0000000..9c711ef --- /dev/null +++ b/src/tpQU/tp01/third/A.java @@ -0,0 +1,7 @@ +package third; + +public class A { + public static void main(String[] args) { + System.out.println("Pkg third - Class A - main program"); // java -cp bin third/A.java + } +} \ No newline at end of file diff --git a/src/tpQU/tp02/ToDoList.html b/src/tpQU/tp02/ToDoList.html new file mode 100644 index 0000000..908b125 --- /dev/null +++ b/src/tpQU/tp02/ToDoList.html @@ -0,0 +1,360 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (21) on Mon Mar 10 10:46:53 CET 2025 --> +<title>ToDoList</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-10"> +<meta name="description" content="declaration: package: tpOO.tp03, class: ToDoList"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.7.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-all.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">tpOO.tp03</a></div> +<h1 title="Class ToDoList" class="title">Class ToDoList</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">tpOO.tp03.ToDoList</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ToDoList</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Représente une liste de tâches à effectuer.</div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ToDoList</a>()</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur initialisant la liste avec une capacité de 5 tâches.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0"> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addTask(tpOO.tp03.Task)" class="member-name-link">addTask</a><wbr>(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Ajoute une tâche à la liste.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#dueTasks()" class="member-name-link">dueTasks</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne les tâches dont la date d'échéance est aujourd'hui.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#durationSort()" class="member-name-link">durationSort</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Trie les tâches par durée (de la plus longue à la plus courte).</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#emergencySort()" class="member-name-link">emergencySort</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Trie les tâches par ordre d'urgence (échéance la plus proche en premier).</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#enlarge()" class="member-name-link">enlarge</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Augmente la capacité de la liste de tâches de 5 unités.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getChores()" class="member-name-link">getChores</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne le tableau des tâches.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNbTasks()" class="member-name-link">getNbTasks</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne le nombre de tâches dans la liste.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isOverwhelmed()" class="member-name-link">isOverwhelmed</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Vérifie si la liste de tâches est surchargée.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onSickLeave(int)" class="member-name-link">onSickLeave</a><wbr>(int nbDays)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Reporte toutes les tâches de la liste d'un certain nombre de jours.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeTask(int)" class="member-name-link">removeTask</a><wbr>(int i)</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Supprime une tâche à un index donné.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeTask(tpOO.tp03.Task)" class="member-name-link">removeTask</a><wbr>(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Supprime une tâche spécifique de la liste.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#senioritySort()" class="member-name-link">senioritySort</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Trie les tâches par ancienneté (de la plus ancienne à la plus récente).</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne une représentation sous forme de chaîne de caractères de la liste de tâches.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>()"> +<h3>ToDoList</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">ToDoList</span>()</div> +<div class="block">Constructeur initialisant la liste avec une capacité de 5 tâches.</div> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="enlarge()"> +<h3>enlarge</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">enlarge</span>()</div> +<div class="block">Augmente la capacité de la liste de tâches de 5 unités.</div> +</section> +</li> +<li> +<section class="detail" id="addTask(tpOO.tp03.Task)"> +<h3>addTask</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">addTask</span><wbr><span class="parameters">(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</span></div> +<div class="block">Ajoute une tâche à la liste.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>aTask</code> - La tâche à ajouter.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="removeTask(tpOO.tp03.Task)"> +<h3>removeTask</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">removeTask</span><wbr><span class="parameters">(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</span></div> +<div class="block">Supprime une tâche spécifique de la liste.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>aTask</code> - La tâche à supprimer.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="removeTask(int)"> +<h3>removeTask</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">removeTask</span><wbr><span class="parameters">(int i)</span></div> +<div class="block">Supprime une tâche à un index donné.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>i</code> - L'index de la tâche à supprimer.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="isOverwhelmed()"> +<h3>isOverwhelmed</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">isOverwhelmed</span>()</div> +<div class="block">Vérifie si la liste de tâches est surchargée.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>true si la liste est surchargée, false sinon.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="getNbTasks()"> +<h3>getNbTasks</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name">getNbTasks</span>()</div> +<div class="block">Retourne le nombre de tâches dans la liste.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le nombre total de tâches non nulles.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="onSickLeave(int)"> +<h3>onSickLeave</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">onSickLeave</span><wbr><span class="parameters">(int nbDays)</span></div> +<div class="block">Reporte toutes les tâches de la liste d'un certain nombre de jours.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>nbDays</code> - Nombre de jours de report.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="dueTasks()"> +<h3>dueTasks</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</span> <span class="element-name">dueTasks</span>()</div> +<div class="block">Retourne les tâches dont la date d'échéance est aujourd'hui.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Un tableau des tâches dues aujourd'hui.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="emergencySort()"> +<h3>emergencySort</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">emergencySort</span>()</div> +<div class="block">Trie les tâches par ordre d'urgence (échéance la plus proche en premier).</div> +</section> +</li> +<li> +<section class="detail" id="durationSort()"> +<h3>durationSort</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">durationSort</span>()</div> +<div class="block">Trie les tâches par durée (de la plus longue à la plus courte).</div> +</section> +</li> +<li> +<section class="detail" id="senioritySort()"> +<h3>senioritySort</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">senioritySort</span>()</div> +<div class="block">Trie les tâches par ancienneté (de la plus ancienne à la plus récente).</div> +</section> +</li> +<li> +<section class="detail" id="toString()"> +<h3>toString</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span> <span class="element-name">toString</span>()</div> +<div class="block">Retourne une représentation sous forme de chaîne de caractères de la liste de tâches.</div> +<dl class="notes"> +<dt>Overrides:</dt> +<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> +<dt>Returns:</dt> +<dd>Une chaîne représentant la liste des tâches.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="getChores()"> +<h3>getChores</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</span> <span class="element-name">getChores</span>()</div> +<div class="block">Retourne le tableau des tâches.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Un tableau de tâches.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/src/tpQU/tp02/WarriorCard.java b/src/tpQU/tp02/WarriorCard.java new file mode 100644 index 0000000..9470449 --- /dev/null +++ b/src/tpQU/tp02/WarriorCard.java @@ -0,0 +1,65 @@ +package tp02; + +/** + * @author Alexandre + * @version 0.01 + * @since java21 + */ +public class WarriorCard { + private String name; + private int strength = 0; + private int agility = 0; + + /** + * @param name + * @param strength + * @param agility + */ + WarriorCard(String name, int strength, int agility){ + this.name = name; + this.strength = strength; + this.agility = agility; + } + + /** + * @param obj Objet qui est vérifié + * @return true si égale + * Vérifie si l'objet est égale + */ + public boolean equals(Object obj) { + if(this == obj){ + return true; + } + if(obj == null){ + return false; + } + if(this.getClass() != obj.getClass()){ + return false; + } + WarriorCard other = (WarriorCard) obj; + if (this.name == null) { + if (other.name != null){ + return false; + } + } else if (!this.name.equals(other.name)){ + return false; + } + return true; + } + + /** + * @param other une autre carte + * @return différence de strength + */ + public int compareStrength(WarriorCard other){ + return this.strength - other.strength; + } + + public int compareAgility(WarriorCard other){ + return this.agility - other.agility; + } + + public String toString(){ + return this.name + "[S=" + this.strength + ",A=" + this.agility + "]"; + } +} diff --git a/test/tpQU/tp02/AgendaTest.java b/test/tpQU/tp02/AgendaTest.java new file mode 100755 index 0000000..e23d4cc --- /dev/null +++ b/test/tpQU/tp02/AgendaTest.java @@ -0,0 +1,56 @@ +package tpQU.tp02; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.time.LocalDate; +import java.util.ArrayList; + +public class AgendaTest { + public Event evt1; + public Event evt2; + public Event evt3; + public Event evt4; + public Agenda ag = new Agenda(); + public Agenda ag2 = new Agenda(); + + @BeforeEach + public void avantTest() { + ag.clear(); + LocalDate d1 = LocalDate.of(2018, 1, 5); + LocalDate d2 = LocalDate.of(2018, 2, 10); + LocalDate d3 = LocalDate.of(2018, 3, 15); + LocalDate d4 = LocalDate.of(2018, 4, 20); + evt1 = new Event("evt1", null, d1, d2); + evt2 = new Event("evt2", null, d2, d3); + evt3 = new Event("evt3", null, d3, d4); + evt4 = new Event("evt4", null, d2, d4); + } + + @Test + public void testConflicting() { + assertTrue(ag.conflicting(evt1)); + ag.addEvent(evt1); + assertTrue(ag.conflicting(evt3)); + ag.addEvent(evt3); + assertFalse(ag.conflicting(evt4)); + } + @Test + public void testRemoveOverlapping() { + ag.addEvent(evt1); + ArrayList<Event> tmp = new ArrayList<Event>(); + ag.removeOverlapping(evt1); + assertEquals(ag.events, tmp); + ag.addEvent(evt1);ag.addEvent(evt2);tmp.add(evt1); tmp.add(evt2); + ag.removeOverlapping(evt1); + ag.addEvent(evt3); tmp.clear(); + ag.removeOverlapping(evt4); + assertEquals(ag.events,tmp); + ag.addEvent(evt1);ag.addEvent(evt2);ag.addEvent(evt3); tmp.clear(); tmp.add(evt1); + ag.removeOverlapping(evt4); + assertEquals(ag.events,tmp); + } +} diff --git a/test/tpQU/tp02/EventTest.java b/test/tpQU/tp02/EventTest.java new file mode 100644 index 0000000..a4b7221 --- /dev/null +++ b/test/tpQU/tp02/EventTest.java @@ -0,0 +1,96 @@ +package tpQU.tp02; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.time.LocalDate; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import tpOO.tp03.Task; + +public class EventTest { + public Event evt1; + public Event evt2; + public Event evt3; + public Event evt4; + public Event evt5; + public Event evt6; + public Task t1; + public Task t2; + + @BeforeEach + public void avantTest() { + LocalDate d1 = LocalDate.of(2022, 1, 5); + LocalDate d2 = LocalDate.of(2022, 2, 10); + LocalDate d3 = LocalDate.of(2022, 3, 15); + LocalDate d4 = LocalDate.of(2022, 4, 20); + String place1 = "nowhere"; + String place2 = "everywhere"; + evt1 = new Event("evt1", place1, d1, d2); + evt2 = new Event("evt2", place1, d2, d3); + evt3 = new Event("evt3", place1, d3, d4); + evt4 = new Event("evt4", place1, d2, d4); + evt5 = new Event("evt5", place2, d1, d2); + evt6 = new Event("evt1", place1, d1, d2); + t1 = new Task("task1", 2); + t2 = new Task("task2", 1); + } + + @Test + void testToString() { + assertEquals("evt1 - nowhere: \t 2022-01-05 -> 2022-02-10", evt1.toString()); + assertEquals("evt2 - nowhere: \t 2022-02-10 -> 2022-03-15", evt2.toString()); + assertEquals("evt3 - nowhere: \t 2022-03-15 -> 2022-04-20", evt3.toString()); + assertEquals("evt4 - nowhere: \t 2022-02-10 -> 2022-04-20", evt4.toString()); + assertEquals("evt5 - everywhere: \t 2022-01-05 -> 2022-02-10", evt5.toString()); + } + + @Test + void testAddTask() { + assertEquals(0, evt1.getNbTasks()); + assertNull(evt1.getChores()[0]); + evt1.addTask(t1); + assertEquals(1, evt1.getNbTasks()); + assertEquals(t1, evt1.getChores()[0]); + evt1.addTask(t2); + assertEquals(2, evt1.getNbTasks()); + assertEquals(t2, evt1.getChores()[1]); + evt1.addTask(t1); + assertEquals(3, evt1.getNbTasks()); + assertEquals(t1, evt1.getChores()[0]); + assertEquals(t1, evt1.getChores()[2]); + } + + @Test + void testEquals() { + assertTrue(evt1.equals(evt1)); + assertFalse(evt1.equals(evt2)); + assertFalse(evt1.equals(evt3)); + assertFalse(evt1.equals(evt4)); + assertFalse(evt1.equals(evt5)); + assertTrue(evt1.equals(evt6)); + // + assertTrue(evt2.equals(evt2)); + assertFalse(evt2.equals(evt3)); + assertFalse(evt2.equals(evt4)); + assertFalse(evt2.equals(evt5)); + assertFalse(evt2.equals(evt6)); + } + + @Test + void testOverlap() { + assertTrue(evt1.overlap(evt1)); + assertFalse(evt1.overlap(evt2)); + assertFalse(evt1.overlap(evt3)); + assertFalse(evt1.overlap(evt4)); + assertTrue(evt1.overlap(evt5)); + assertTrue(evt1.overlap(evt6)); + assertFalse(evt2.overlap(evt3)); + assertTrue(evt2.overlap(evt4)); + assertTrue(evt3.overlap(evt4)); + } +} diff --git a/test/tpQU/tp02/WarriorCardTest.java b/test/tpQU/tp02/WarriorCardTest.java new file mode 100755 index 0000000..4a09085 --- /dev/null +++ b/test/tpQU/tp02/WarriorCardTest.java @@ -0,0 +1,47 @@ +package tp02; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class WarriorCardTest { + WarriorCard c1; + WarriorCard c2; + WarriorCard c3; + WarriorCard c4; + + @BeforeAll + public static void beforeAllTests() {System.out.println("Start test series");} + @AfterAll + public static void afterAllTests() {System.out.println("End test series");} + @BeforeEach + public void beforeATest() { + c1 = new WarriorCard("w1", 10, 10); + c2 = new WarriorCard("w1", 5, 5); + c3 = new WarriorCard("w2", 20, 20); + c4 = c1; + } + @AfterEach + public void afterATest() {System.out.println("--------- end of a test---------");} + @Test + public void testEquals() { + System.out.println("testEquals"); + assertTrue(c1.equals(c1)); + assertTrue(c1.equals(c2)); + assertFalse(c1.equals(c3)); + assertTrue(c1.equals(c4)); + } + @Test + public void testToString() { + System.out.println("testToString"); + assertEquals("w1[S=10,A=10]", c1.toString()); + assertEquals("w2[S=20,A=20]", c3.toString()); + } + +} \ No newline at end of file -- GitLab