From 48ec0bd22fdc7df267d434b2328789f2873d252e Mon Sep 17 00:00:00 2001 From: Rui Azevedo Date: Mon, 8 Jul 2024 10:10:28 +0100 Subject: [PATCH] Testdata to transpile Go into Java Part of #201 --- .../implementation/balancedBrackets.go | 20 +++++++ .../java/transpile/balancedBrackets/pom.xml | 50 ++++++++++++++++ .../main/java/com/eval/BalancedBrackets.java | 6 ++ .../java/com/eval/BalancedBracketsTest.java | 46 +++++++++++++++ .../implementation/binarySearch.go | 22 +++++++ testdata/java/transpile/binarySearch/pom.xml | 50 ++++++++++++++++ .../src/main/java/com/eval/BinarySearch.java | 6 ++ .../test/java/com/eval/BinarySearchTest.java | 57 +++++++++++++++++++ .../implementation/cascadingIfElse.go | 11 ++++ .../java/transpile/cascadingIfElse/pom.xml | 50 ++++++++++++++++ .../main/java/com/eval/CascadingIfElse.java | 6 ++ .../java/com/eval/CascadingIfElseTest.java | 33 +++++++++++ .../implementation/pascalsTriangle.go | 21 +++++++ .../java/transpile/pascalsTriangle/pom.xml | 50 ++++++++++++++++ .../main/java/com/eval/PascalsTriangle.java | 6 ++ .../java/com/eval/PascalsTriangleTest.java | 46 +++++++++++++++ .../transpile/sort/implementation/sort.go | 10 ++++ testdata/java/transpile/sort/pom.xml | 50 ++++++++++++++++ .../sort/src/main/java/com/eval/Sort.java | 6 ++ .../sort/src/test/java/com/eval/SortTest.java | 47 +++++++++++++++ 20 files changed, 593 insertions(+) create mode 100644 testdata/java/transpile/balancedBrackets/implementation/balancedBrackets.go create mode 100644 testdata/java/transpile/balancedBrackets/pom.xml create mode 100644 testdata/java/transpile/balancedBrackets/src/main/java/com/eval/BalancedBrackets.java create mode 100644 testdata/java/transpile/balancedBrackets/src/test/java/com/eval/BalancedBracketsTest.java create mode 100644 testdata/java/transpile/binarySearch/implementation/binarySearch.go create mode 100644 testdata/java/transpile/binarySearch/pom.xml create mode 100644 testdata/java/transpile/binarySearch/src/main/java/com/eval/BinarySearch.java create mode 100644 testdata/java/transpile/binarySearch/src/test/java/com/eval/BinarySearchTest.java create mode 100644 testdata/java/transpile/cascadingIfElse/implementation/cascadingIfElse.go create mode 100644 testdata/java/transpile/cascadingIfElse/pom.xml create mode 100644 testdata/java/transpile/cascadingIfElse/src/main/java/com/eval/CascadingIfElse.java create mode 100644 testdata/java/transpile/cascadingIfElse/src/test/java/com/eval/CascadingIfElseTest.java create mode 100644 testdata/java/transpile/pascalsTriangle/implementation/pascalsTriangle.go create mode 100644 testdata/java/transpile/pascalsTriangle/pom.xml create mode 100644 testdata/java/transpile/pascalsTriangle/src/main/java/com/eval/PascalsTriangle.java create mode 100644 testdata/java/transpile/pascalsTriangle/src/test/java/com/eval/PascalsTriangleTest.java create mode 100644 testdata/java/transpile/sort/implementation/sort.go create mode 100644 testdata/java/transpile/sort/pom.xml create mode 100644 testdata/java/transpile/sort/src/main/java/com/eval/Sort.java create mode 100644 testdata/java/transpile/sort/src/test/java/com/eval/SortTest.java diff --git a/testdata/java/transpile/balancedBrackets/implementation/balancedBrackets.go b/testdata/java/transpile/balancedBrackets/implementation/balancedBrackets.go new file mode 100644 index 00000000..a5516528 --- /dev/null +++ b/testdata/java/transpile/balancedBrackets/implementation/balancedBrackets.go @@ -0,0 +1,20 @@ +package balancedBrackets + +func hasBalancedBrackets(charArray string) bool { + brackets := 0 + for _, ch := range charArray { + if ch == '[' { + brackets++ + } else if ch == ']' { + brackets-- + } else { + return false // Non-bracket characters. + } + } + + if brackets < 0 { // Closing bracket before opening bracket. + return false + } + + return brackets == 0 +} diff --git a/testdata/java/transpile/balancedBrackets/pom.xml b/testdata/java/transpile/balancedBrackets/pom.xml new file mode 100644 index 00000000..76c04cc4 --- /dev/null +++ b/testdata/java/transpile/balancedBrackets/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + eval.dev.quality + balanced-brackets + SNAPSHOT + + 11 + 11 + + + + + org.openclover + clover-maven-plugin + 4.5.2 + + false + false + false + true + true + true + true + true + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + + + org.junit.jupiter + junit-jupiter + 5.8.2 + test + + + org.apache.commons + commons-lang3 + 3.14.0 + + + diff --git a/testdata/java/transpile/balancedBrackets/src/main/java/com/eval/BalancedBrackets.java b/testdata/java/transpile/balancedBrackets/src/main/java/com/eval/BalancedBrackets.java new file mode 100644 index 00000000..91ea17be --- /dev/null +++ b/testdata/java/transpile/balancedBrackets/src/main/java/com/eval/BalancedBrackets.java @@ -0,0 +1,6 @@ +package com.eval; + +public class BalancedBrackets { + static boolean hasBalancedBrackets(char[] charArray) { + } +} diff --git a/testdata/java/transpile/balancedBrackets/src/test/java/com/eval/BalancedBracketsTest.java b/testdata/java/transpile/balancedBrackets/src/test/java/com/eval/BalancedBracketsTest.java new file mode 100644 index 00000000..39141529 --- /dev/null +++ b/testdata/java/transpile/balancedBrackets/src/test/java/com/eval/BalancedBracketsTest.java @@ -0,0 +1,46 @@ +package com.eval; + +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.*; + +public class BalancedBracketsTest { + @Test + public void hasBalancedBrackets1() { + char[] charArray = {}; + boolean actual = BalancedBrackets.hasBalancedBrackets(charArray); + + assertTrue(actual); + } + + @Test + public void hasBalancedBrackets2() { + char[] charArray = { '[' }; + boolean actual = BalancedBrackets.hasBalancedBrackets(charArray); + + assertFalse(actual); + } + + @Test + public void hasBalancedBrackets3() { + char[] charArray = { '[', '[', '[', ']', ']' }; + boolean actual = BalancedBrackets.hasBalancedBrackets(charArray); + + assertFalse(actual); + } + + @Test + public void hasBalancedBrackets4() { + char[] charArray = { '[', '[', ']', ']' }; + boolean actual = BalancedBrackets.hasBalancedBrackets(charArray); + + assertTrue(actual); + } + + @Test + public void hasBalancedBrackets5() { + char[] charArray = { '[', '[', '[', '[', ']', ']', ']', ']' }; + boolean actual = BalancedBrackets.hasBalancedBrackets(charArray); + + assertTrue(actual); + } +} diff --git a/testdata/java/transpile/binarySearch/implementation/binarySearch.go b/testdata/java/transpile/binarySearch/implementation/binarySearch.go new file mode 100644 index 00000000..939fb024 --- /dev/null +++ b/testdata/java/transpile/binarySearch/implementation/binarySearch.go @@ -0,0 +1,22 @@ +package binarySearch + +func binarySearch(a []int, x int) int { + index := -1 + + min := 0 + max := len(a) - 1 + + for index == -1 && min <= max { + m := (min + max) / 2 + + if x == a[m] { + index = m + } else if x < a[m] { + max = m - 1 + } else { + min = m + 1 + } + } + + return index +} diff --git a/testdata/java/transpile/binarySearch/pom.xml b/testdata/java/transpile/binarySearch/pom.xml new file mode 100644 index 00000000..272bde38 --- /dev/null +++ b/testdata/java/transpile/binarySearch/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + eval.dev.quality + binary-search + SNAPSHOT + + 11 + 11 + + + + + org.openclover + clover-maven-plugin + 4.5.2 + + false + false + false + true + true + true + true + true + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + + + org.junit.jupiter + junit-jupiter + 5.8.2 + test + + + org.apache.commons + commons-lang3 + 3.14.0 + + + diff --git a/testdata/java/transpile/binarySearch/src/main/java/com/eval/BinarySearch.java b/testdata/java/transpile/binarySearch/src/main/java/com/eval/BinarySearch.java new file mode 100644 index 00000000..1855e960 --- /dev/null +++ b/testdata/java/transpile/binarySearch/src/main/java/com/eval/BinarySearch.java @@ -0,0 +1,6 @@ +package com.eval; + +class BinarySearch { + static int binarySearch(int[] a, int x) { + } +} diff --git a/testdata/java/transpile/binarySearch/src/test/java/com/eval/BinarySearchTest.java b/testdata/java/transpile/binarySearch/src/test/java/com/eval/BinarySearchTest.java new file mode 100644 index 00000000..f8745b55 --- /dev/null +++ b/testdata/java/transpile/binarySearch/src/test/java/com/eval/BinarySearchTest.java @@ -0,0 +1,57 @@ +package com.eval; + +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.*; + +public class BinarySearchTest { + + @Test + public void binarySearch1() { + int[] a = {}; + int x = 0; + int expected = -1; + int actual = BinarySearch.binarySearch(a, x); + + assertEquals(expected, actual); + } + + @Test + public void binarySearch2() { + int[] a = { 0 }; + int x = 5; + int expected = -1; + int actual = BinarySearch.binarySearch(a, x); + + assertEquals(expected, actual); + } + + @Test + public void binarySearch3() { + int[] a = { 1, 2, 3, 4, 5 }; + int x = 6; + int expected = -1; + int actual = BinarySearch.binarySearch(a, x); + + assertEquals(expected, actual); + } + + @Test + public void binarySearch4() { + int[] a = { 1, 2, 3, 4, 5 }; + int x = 3; + int expected = 2; + int actual = BinarySearch.binarySearch(a, x); + + assertEquals(expected, actual); + } + + @Test + public void binarySearch5() { + int[] a = { 1, 5, 10, 15, 20, 25 }; + int x = 25; + int expected = 5; + int actual = BinarySearch.binarySearch(a, x); + + assertEquals(expected, actual); + } +} diff --git a/testdata/java/transpile/cascadingIfElse/implementation/cascadingIfElse.go b/testdata/java/transpile/cascadingIfElse/implementation/cascadingIfElse.go new file mode 100644 index 00000000..0eabe88b --- /dev/null +++ b/testdata/java/transpile/cascadingIfElse/implementation/cascadingIfElse.go @@ -0,0 +1,11 @@ +package cascadingIfElse + +func cascadingIfElse(i int) int { + if i == 1 { + return 2 + } else if i == 3 { + return 4 + } else { + return 5 + } +} diff --git a/testdata/java/transpile/cascadingIfElse/pom.xml b/testdata/java/transpile/cascadingIfElse/pom.xml new file mode 100644 index 00000000..8c4d5487 --- /dev/null +++ b/testdata/java/transpile/cascadingIfElse/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + eval.dev.quality + cascading-if-else + SNAPSHOT + + 11 + 11 + + + + + org.openclover + clover-maven-plugin + 4.5.2 + + false + false + false + true + true + true + true + true + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + + + org.junit.jupiter + junit-jupiter + 5.8.2 + test + + + org.apache.commons + commons-lang3 + 3.14.0 + + + diff --git a/testdata/java/transpile/cascadingIfElse/src/main/java/com/eval/CascadingIfElse.java b/testdata/java/transpile/cascadingIfElse/src/main/java/com/eval/CascadingIfElse.java new file mode 100644 index 00000000..002f67e4 --- /dev/null +++ b/testdata/java/transpile/cascadingIfElse/src/main/java/com/eval/CascadingIfElse.java @@ -0,0 +1,6 @@ +package com.eval; + +class CascadingIfElse { + static int cascadingIfElse(int i) { + } +} diff --git a/testdata/java/transpile/cascadingIfElse/src/test/java/com/eval/CascadingIfElseTest.java b/testdata/java/transpile/cascadingIfElse/src/test/java/com/eval/CascadingIfElseTest.java new file mode 100644 index 00000000..6ca20c2d --- /dev/null +++ b/testdata/java/transpile/cascadingIfElse/src/test/java/com/eval/CascadingIfElseTest.java @@ -0,0 +1,33 @@ +package com.eval; + +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.*; + +public class CascadingIfElseTest { + @Test + public void cascadingIfElse1() { + int i = 0; + int expected = 5; + int actual = CascadingIfElse.cascadingIfElse(i); + + assertEquals(expected, actual); + } + + @Test + public void cascadingIfElse2() { + int i = 1; + int expected = 2; + int actual = CascadingIfElse.cascadingIfElse(i); + + assertEquals(expected, actual); + } + + @Test + public void cascadingIfElse3() { + int i = 3; + int expected = 4; + int actual = CascadingIfElse.cascadingIfElse(i); + + assertEquals(expected, actual); + } +} diff --git a/testdata/java/transpile/pascalsTriangle/implementation/pascalsTriangle.go b/testdata/java/transpile/pascalsTriangle/implementation/pascalsTriangle.go new file mode 100644 index 00000000..76ec109f --- /dev/null +++ b/testdata/java/transpile/pascalsTriangle/implementation/pascalsTriangle.go @@ -0,0 +1,21 @@ +package pascalsTriangle + +import "errors" + +func pascalsTriangle(rows int) ([][]int, error) { + if rows < 0 { + return nil, errors.New("Rows can't be negative!") + } + + triangle := make([][]int, rows) + + for i := 0; i < rows; i++ { + triangle[i] = make([]int, i+1) + triangle[i][0] = 1 + for j := 1; j < i; j++ { + triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j] + } + triangle[i][i] = 1 + } + return triangle, nil +} diff --git a/testdata/java/transpile/pascalsTriangle/pom.xml b/testdata/java/transpile/pascalsTriangle/pom.xml new file mode 100644 index 00000000..8c4d5487 --- /dev/null +++ b/testdata/java/transpile/pascalsTriangle/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + eval.dev.quality + cascading-if-else + SNAPSHOT + + 11 + 11 + + + + + org.openclover + clover-maven-plugin + 4.5.2 + + false + false + false + true + true + true + true + true + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + + + org.junit.jupiter + junit-jupiter + 5.8.2 + test + + + org.apache.commons + commons-lang3 + 3.14.0 + + + diff --git a/testdata/java/transpile/pascalsTriangle/src/main/java/com/eval/PascalsTriangle.java b/testdata/java/transpile/pascalsTriangle/src/main/java/com/eval/PascalsTriangle.java new file mode 100644 index 00000000..1a3735e7 --- /dev/null +++ b/testdata/java/transpile/pascalsTriangle/src/main/java/com/eval/PascalsTriangle.java @@ -0,0 +1,6 @@ +package com.eval; + +public class PascalsTriangle { + [][] generateTriangle(int rows) { + } +} diff --git a/testdata/java/transpile/pascalsTriangle/src/test/java/com/eval/PascalsTriangleTest.java b/testdata/java/transpile/pascalsTriangle/src/test/java/com/eval/PascalsTriangleTest.java new file mode 100644 index 00000000..2beabe03 --- /dev/null +++ b/testdata/java/transpile/pascalsTriangle/src/test/java/com/eval/PascalsTriangleTest.java @@ -0,0 +1,46 @@ +package com.eval; + +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.*; +import org.apache.commons.lang3.builder.EqualsBuilder; + +public class PascalsTriangleTest { + @Test + public void generateTriangle1() { + PascalsTriangle p = new PascalsTriangle(); + int rows = -1; + assertThrows(IllegalArgumentException.class, () -> { + p.generateTriangle(rows); + }); + } + + @Test + public void generateTriangle2() { + PascalsTriangle p = new PascalsTriangle(); + int rows = 0; + int[][] expected = {}; + int[][] actual = p.generateTriangle(rows); + + assertTrue(EqualsBuilder.reflectionEquals(expected, actual, false, null, true)); + } + + @Test + public void generateTriangle3() { + PascalsTriangle p = new PascalsTriangle(); + int rows = 1; + int[][] expected = { { 1 } }; + int[][] actual = p.generateTriangle(rows); + + assertTrue(EqualsBuilder.reflectionEquals(expected, actual, false, null, true)); + } + + @Test + public void generateTriangle4() { + PascalsTriangle p = new PascalsTriangle(); + int rows = 5; + int[][] expected = { { 1 }, { 1, 1 }, { 1, 2, 1 }, { 1, 3, 3, 1 }, { 1, 4, 6, 4, 1 } }; + int[][] actual = p.generateTriangle(rows); + + assertTrue(EqualsBuilder.reflectionEquals(expected, actual, false, null, true)); + } +} diff --git a/testdata/java/transpile/sort/implementation/sort.go b/testdata/java/transpile/sort/implementation/sort.go new file mode 100644 index 00000000..73e7e9f1 --- /dev/null +++ b/testdata/java/transpile/sort/implementation/sort.go @@ -0,0 +1,10 @@ +package sort + +func isSorted(a []int) bool { + i := 0 + for i < len(a)-1 && a[i] <= a[i+1] { + i++ + } + + return i == len(a)-1 +} diff --git a/testdata/java/transpile/sort/pom.xml b/testdata/java/transpile/sort/pom.xml new file mode 100644 index 00000000..e7e9282d --- /dev/null +++ b/testdata/java/transpile/sort/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + eval.dev.quality + sort + SNAPSHOT + + 11 + 11 + + + + + org.openclover + clover-maven-plugin + 4.5.2 + + false + false + false + true + true + true + true + true + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + + + org.junit.jupiter + junit-jupiter + 5.8.2 + test + + + org.apache.commons + commons-lang3 + 3.14.0 + + + diff --git a/testdata/java/transpile/sort/src/main/java/com/eval/Sort.java b/testdata/java/transpile/sort/src/main/java/com/eval/Sort.java new file mode 100644 index 00000000..4fa3406c --- /dev/null +++ b/testdata/java/transpile/sort/src/main/java/com/eval/Sort.java @@ -0,0 +1,6 @@ +package com.eval; + +class Sort { + static boolean isSorted(int[] a) { + } +} diff --git a/testdata/java/transpile/sort/src/test/java/com/eval/SortTest.java b/testdata/java/transpile/sort/src/test/java/com/eval/SortTest.java new file mode 100644 index 00000000..e59f8b75 --- /dev/null +++ b/testdata/java/transpile/sort/src/test/java/com/eval/SortTest.java @@ -0,0 +1,47 @@ +package com.eval; + +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.*; + +public class SortTest { + + @Test + public void isSorted1() { + int[] a = {}; + boolean actual = Sort.isSorted(a); + + assertFalse(actual); + } + + @Test + public void isSorted2() { + int[] a = { 5, 4, 3, 2, 1 }; + boolean actual = Sort.isSorted(a); + + assertFalse(actual); + } + + @Test + public void isSorted3() { + int[] a = { 0 }; + boolean actual = Sort.isSorted(a); + + assertTrue(actual); + } + + @Test + public void isSorted4() { + int[] a = { 1, 2, 3, 4, 5 }; + boolean actual = Sort.isSorted(a); + + assertTrue(actual); + } + + @Test + public void isSorted5() { + int[] a = { 1, 2, 10, 11, 20, 21 }; + boolean actual = Sort.isSorted(a); + + assertTrue(actual); + } +}