From 8517b11e353184365d4bf60950c6934108e16766 Mon Sep 17 00:00:00 2001 From: Francis Bacquet <6sko59@gmail.com> Date: Fri, 19 Oct 2018 02:29:41 +0200 Subject: [PATCH] feat (java) : ajout d'un permutateur de valeur --- .../isograd/helper/GenerateValueForSize.java | 17 +++++++++- .../isograd/test/GenerateValueForKTest.java | 31 ++++++++++++++----- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/TOOLS/Java/WorkspaceEclipseMDF/mdf/src/com/isograd/helper/GenerateValueForSize.java b/TOOLS/Java/WorkspaceEclipseMDF/mdf/src/com/isograd/helper/GenerateValueForSize.java index 06441c8..4cf6b75 100644 --- a/TOOLS/Java/WorkspaceEclipseMDF/mdf/src/com/isograd/helper/GenerateValueForSize.java +++ b/TOOLS/Java/WorkspaceEclipseMDF/mdf/src/com/isograd/helper/GenerateValueForSize.java @@ -15,7 +15,7 @@ public static List printAllKLength(char[] set, int k) { int n = set.length; List result = new ArrayList<>(); printAllKLengthRec(set, "", n, k, result); - result.stream().forEach(System.out::println); + //result.stream().forEach(System.out::println); return result; } @@ -47,4 +47,19 @@ static void printAllKLengthRec(char[] set, n, k - 1, list); } } + + public static List permutation(String str) { + List result = new ArrayList<>(); + permutation("", str, result); + return result; + } + + private static void permutation(String prefix, String str, List list) { + int n = str.length(); + if (n == 0) list.add(prefix); + else { + for (int i = 0; i < n; i++) + permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1, n), list); + } + } } \ No newline at end of file diff --git a/TOOLS/Java/WorkspaceEclipseMDF/mdf/test/com/isograd/test/GenerateValueForKTest.java b/TOOLS/Java/WorkspaceEclipseMDF/mdf/test/com/isograd/test/GenerateValueForKTest.java index a3e7b9a..8a585e6 100644 --- a/TOOLS/Java/WorkspaceEclipseMDF/mdf/test/com/isograd/test/GenerateValueForKTest.java +++ b/TOOLS/Java/WorkspaceEclipseMDF/mdf/test/com/isograd/test/GenerateValueForKTest.java @@ -1,20 +1,37 @@ package com.isograd.test; import com.isograd.helper.GenerateValueForSize; +import org.junit.Assert; import org.junit.Test; +import java.util.List; + public class GenerateValueForKTest { @Test - public void printAllKLength() { - System.out.println("First Test"); + public void printAllGenerate() { char[] set1 = {'a', 'b'}; int k = 3; - GenerateValueForSize.printAllKLength(set1, k); - System.out.println("\nSecond Test"); - char[] set2 = {'a', 'b', 'c', 'd'}; - k = 1; - GenerateValueForSize.printAllKLength(set2, k); + List actual = GenerateValueForSize.printAllKLength(set1, k); + + System.out.println(actual); + Assert.assertTrue(8==actual.size()); + Assert.assertTrue(actual.contains("aaa")); + Assert.assertTrue(actual.contains("aab")); + Assert.assertTrue(actual.contains("aba")); + Assert.assertTrue(actual.contains("baa")); + Assert.assertTrue(actual.contains("bbb")); + } + + @Test + public void printAllPermutation() { + String set1 = "ab"; + + List actual = GenerateValueForSize.permutation(set1); + + Assert.assertTrue(2==actual.size()); + Assert.assertTrue(actual.contains("ab")); + Assert.assertTrue(actual.contains("ba")); } } \ No newline at end of file