From 74e568f71701105ff9aa9fb8312d344368b2fb2c Mon Sep 17 00:00:00 2001 From: 20050114 <20050114@studenti.uniupo.it> Date: Wed, 22 May 2024 10:46:11 +0200 Subject: [PATCH] da finire test --- Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore | 29 +++++++++ .../Laboratorio/Lab10/Es1/.idea/.gitignore | 3 + .../Laboratorio/Lab10/Es1/.idea/misc.xml | 6 ++ .../Laboratorio/Lab10/Es1/.idea/modules.xml | 8 +++ .../Laboratorio/Lab10/Es1/.idea/vcs.xml | 6 ++ Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml | 39 +++++++++++ .../Laboratorio/Lab10/Es1/Test/TestMSI.java | 44 +++++++++++++ .../Laboratorio/Lab10/Es1/src/MSI.java | 64 +++++++++++++++++++ .../Laboratorio/Lab10/Es1/src/Main.java | 5 ++ Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore | 29 +++++++++ .../Laboratorio/Lab10/Es2/.idea/.gitignore | 3 + .../Laboratorio/Lab10/Es2/.idea/misc.xml | 6 ++ .../Laboratorio/Lab10/Es2/.idea/modules.xml | 8 +++ .../Laboratorio/Lab10/Es2/.idea/vcs.xml | 6 ++ Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml | 11 ++++ .../Laboratorio/Lab10/Es2/src/Atletica.java | 35 ++++++++++ .../Laboratorio/Lab10/Es2/src/Main.java | 5 ++ 17 files changed, 307 insertions(+) create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java create mode 100644 Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml new file mode 100644 index 0000000..69ace3f --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml new file mode 100644 index 0000000..b5fa019 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/Es1.iml" filepath="$PROJECT_DIR$/Es1.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml new file mode 100644 index 0000000..4fce1d8 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml b/Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml new file mode 100644 index 0000000..9aa92e9 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/Test" isTestSource="true" /> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="module-library"> + <library> + <CLASSES> + <root url="jar://$MODULE_DIR$/../../graphLib.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MODULE_DIR$/../../graphLib.jar!/doc" /> + </JAVADOC> + <SOURCES /> + </library> + </orderEntry> + <orderEntry type="module-library" scope="TEST"> + <library name="JUnit5.8.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.8.1/junit-jupiter-5.8.1.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.8.1/junit-jupiter-api-5.8.1.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.8.1/junit-platform-commons-1.8.1.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.8.1/junit-jupiter-params-5.8.1.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.8.1/junit-jupiter-engine-5.8.1.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.8.1/junit-platform-engine-1.8.1.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> + </orderEntry> + </component> +</module> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java b/Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java new file mode 100644 index 0000000..f3a31b7 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java @@ -0,0 +1,44 @@ +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class TestMSI { + @Test + void testCostructor() { + int[] w = new int[5]; + MSI testMSI = new MSI(w); + Assertions.assertNotNull(testMSI); + } + + @Test + void testGetMaxVal() { + { + int[] w = {3, 2, 5, 6, 1}; + MSI testMSI = new MSI(w); + Assertions.assertEquals(testMSI.getMaxVal(), 9); + } + { + int[] w = {2, 3, 4, 5, 1, 7}; + MSI testMSI = new MSI(w); + Assertions.assertEquals(testMSI.getMaxVal(), 15); + } + } + + @Test + void testGetOptSol() { + { + int[] w = {3, 2, 5, 6, 1}; + MSI testMSI = new MSI(w); + System.out.println(testMSI.getOptSol()); + } + { + int[] w = {2, 3, 4, 5, 1, 7}; + MSI testMSI = new MSI(w); + System.out.println(testMSI.getOptSol()); + } + { + int[] w = {1, 999, 1, 5}; + MSI testMSI = new MSI(w); + System.out.println(testMSI.getOptSol()); + } + } +} diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java b/Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java new file mode 100644 index 0000000..3ce67e4 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java @@ -0,0 +1,64 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; + +public class MSI { + private final int[] myWeight; + + public MSI(int[] w) { + myWeight = w; + } + + private int foundMSI(int[] arr) { + arr[0] = myWeight[0]; + arr[1] = Math.max(myWeight[0], myWeight[1]); + + for (int i = 2; i < arr.length; ++i) { + arr[i] = Math.max(arr[i - 1], (arr[i - 2] + myWeight[i])); + } + return arr[arr.length - 1]; + } + + private ArrayList<Integer> foundOptSol(boolean node) { + int[] arr = new int[myWeight.length]; + foundMSI(arr); + + ArrayList<Integer> solution = new ArrayList<>(); + + int i = arr.length - 1; + while (i > 0) { + if (arr[i] > arr[i - 1]) { + solution.add(i); + i -= 2; + } else { + --i; + } + } + if (i == 0) { + solution.add(i); + } + Collections.reverse(solution); + + if (!node) { + return solution; + } else { + ArrayList<Integer> nodesSolution = new ArrayList<>(); + + for (int el : solution) { + nodesSolution.add(myWeight[el]); + } + return nodesSolution; + } + + } + + public int getMaxVal() { + int[] arr = new int[myWeight.length]; + return foundMSI(arr); + } + + public ArrayList<Integer> getOptSol() { + boolean nodePrint = true; + return foundOptSol(nodePrint); + } +} diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java b/Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java new file mode 100644 index 0000000..3e59c38 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml new file mode 100644 index 0000000..69ace3f --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml new file mode 100644 index 0000000..4a05d8d --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/Es2.iml" filepath="$PROJECT_DIR$/Es2.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml new file mode 100644 index 0000000..4fce1d8 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml b/Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java new file mode 100644 index 0000000..300a3dc --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java @@ -0,0 +1,35 @@ +public class Atletica { + private final int weigthLength; + + public Atletica(int numeroDiscipline) { + weigthLength = numeroDiscipline; + } + + private int foundMSI(int[] myWeight) { + int[] arr = new int[myWeight.length]; + arr[0] = myWeight[0]; + arr[1] = Math.max(myWeight[0], myWeight[1]); + + for (int i = 2; i < arr.length; ++i) { + arr[i] = Math.max(arr[i - 1], (arr[i - 2] + myWeight[i])); + } + return arr[arr.length - 1]; + } + + public int scelta(int[] rendAtleta1, int[] rendAtleta2) { + if (rendAtleta1.length != weigthLength || rendAtleta2.length != weigthLength) { + throw new IllegalArgumentException("Le lunghezze non sono uguali"); + } + int MSIAtleta1 = foundMSI(rendAtleta1); + int MSIAtleta2 = foundMSI(rendAtleta2); + if (MSIAtleta1 == MSIAtleta2) { + return 0; + } + + if (MSIAtleta1 > MSIAtleta2) { + return 1; + } else { + return 0; + } + } +} diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java new file mode 100644 index 0000000..3e59c38 --- /dev/null +++ b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file -- GitLab