Added number generators
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>mattrixwv</groupId>
|
<groupId>mattrixwv</groupId>
|
||||||
<artifactId>myClasses</artifactId>
|
<artifactId>myClasses</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>1.2.0</version>
|
||||||
|
|
||||||
<name>myClasses</name>
|
<name>myClasses</name>
|
||||||
<url>www.mattrixwv.com</url>
|
<url>www.mattrixwv.com</url>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
@@ -29,7 +29,7 @@ import java.util.Collections;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import mattrixwv.exceptions.InvalidResult;
|
import com.mattrixwv.exceptions.InvalidResult;
|
||||||
|
|
||||||
|
|
||||||
public class NumberAlgorithms{
|
public class NumberAlgorithms{
|
||||||
@@ -19,10 +19,10 @@ Copyright (C) 2022 Matthew Ellison
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import mattrixwv.exceptions.InvalidResult;
|
import com.mattrixwv.exceptions.InvalidResult;
|
||||||
|
|
||||||
|
|
||||||
public class Stopwatch{
|
public class Stopwatch{
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
67
src/main/java/com/mattrixwv/Triple.java
Normal file
67
src/main/java/com/mattrixwv/Triple.java
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
//JavaClasses/src/main/java/com/mattrixwv/Triple.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
//This class implements a triplet of variables
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
|
public class Triple<T, U, V>{
|
||||||
|
private T a;
|
||||||
|
private U b;
|
||||||
|
private V c;
|
||||||
|
|
||||||
|
public Triple(T a, U b, V c){
|
||||||
|
this.a = a;
|
||||||
|
this.b = b;
|
||||||
|
this.c = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getA(){
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
public U getB(){
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
public V getC(){
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o){
|
||||||
|
if(this == o){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if(o instanceof Triple<?, ?, ?>){
|
||||||
|
Triple<?, ?, ?> rightSide = (Triple<?, ?, ?>)o;
|
||||||
|
return (a.equals(rightSide.a) && b.equals(rightSide.b) && c.equals(rightSide.c));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int hashCode(){
|
||||||
|
return a.hashCode() + b.hashCode() * c.hashCode();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String toString(){
|
||||||
|
return "[" + a.toString() + ", " + b.toString() + ", " + c.toString() + "]";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
// Created: 08-24-20
|
// Created: 08-24-20
|
||||||
//Modified: 08-24-20
|
//Modified: 08-24-20
|
||||||
//This is an exception for an invalid result out of one of my algorithms
|
//This is an exception for an invalid result out of one of my algorithms
|
||||||
package mattrixwv.exceptions;
|
package com.mattrixwv.exceptions;
|
||||||
|
|
||||||
|
|
||||||
public class InvalidResult extends Exception{
|
public class InvalidResult extends Exception{
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
//JavaClasses/src/main/java/mattrixwv/HexagonalNumberGenerator.java
|
||||||
|
//Matthew Ellison
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
//This class generates hexagonal numbers
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
|
|
||||||
|
public class HexagonalNumberGenerator implements Iterator<Long>{
|
||||||
|
private Long num;
|
||||||
|
|
||||||
|
public HexagonalNumberGenerator(){
|
||||||
|
num = 1L;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext(){
|
||||||
|
return (2 * num * num) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long next(){
|
||||||
|
Long newNum = ((2 * num * num) - num);
|
||||||
|
++num;
|
||||||
|
if(num > 0){
|
||||||
|
return newNum;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
throw new NoSuchElementException("Number overflow");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isHexagonal(Long x){
|
||||||
|
Long n = Math.round((Math.sqrt(1 + (8 * x)) + 1) / 4);
|
||||||
|
return ((2 * n * n) - n) == x;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
//JavaClasses/src/main/java/com/mattrixwv/generators/PentagonalNumberGenerator.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
//This class generates pentagonal numbers
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
|
|
||||||
|
public class PentagonalNumberGenerator implements Iterator<Long>{
|
||||||
|
private Long num;
|
||||||
|
|
||||||
|
public PentagonalNumberGenerator(){
|
||||||
|
num = 1L;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext(){
|
||||||
|
return (3 * num * num) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long next(){
|
||||||
|
long newNum = ((3 * num * num) - num) / 2;
|
||||||
|
++num;
|
||||||
|
if(num > 0){
|
||||||
|
return newNum;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
throw new NoSuchElementException("Number overflow");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isPentagonal(Long x){
|
||||||
|
Long n = Math.round((Math.sqrt(1 + (24 * x)) + 1) / 6);
|
||||||
|
return (((3 * n * n) - n) / 2) == x;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,7 +19,7 @@ Copyright (C) 2022 Matthew Ellison
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -19,7 +19,7 @@ Copyright (C) 2022 Matthew Ellison
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
//JavaClasses/src/main/java/com/mattrixwv/generators/TriangularNumberGenerator.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
//This class generates triangular numbers
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
|
|
||||||
|
public class TriangularNumberGenerator implements Iterator<Long>{
|
||||||
|
private Long num;
|
||||||
|
|
||||||
|
public TriangularNumberGenerator(){
|
||||||
|
num = 1L;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext(){
|
||||||
|
return (num * num) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long next(){
|
||||||
|
Long newNum = ((num * num) + num) / 2;
|
||||||
|
++num;
|
||||||
|
if(num > 0){
|
||||||
|
return newNum;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
throw new NoSuchElementException("Number overflow");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isTriangular(Long x){
|
||||||
|
Long n = Math.round((Math.sqrt(1 + (8 * x)) - 1) / 2);
|
||||||
|
return (((n * n) + n) / 2) == x;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@@ -33,7 +33,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import mattrixwv.exceptions.InvalidResult;
|
import com.mattrixwv.exceptions.InvalidResult;
|
||||||
|
|
||||||
|
|
||||||
public class TestNumberAlgorithms{
|
public class TestNumberAlgorithms{
|
||||||
@@ -22,7 +22,7 @@ Copyright (C) 2022 Matthew Ellison
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import mattrixwv.exceptions.InvalidResult;
|
import com.mattrixwv.exceptions.InvalidResult;
|
||||||
|
|
||||||
|
|
||||||
public class TestStopwatch{
|
public class TestStopwatch{
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
45
src/test/java/com/mattrixwv/TestTriple.java
Normal file
45
src/test/java/com/mattrixwv/TestTriple.java
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
//JavaClasses/src/test/java/com/mattrixwv/TestTriple.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv;
|
||||||
|
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
||||||
|
public class TestTriple{
|
||||||
|
@Test
|
||||||
|
public void testTriple(){
|
||||||
|
Triple<Long, Long, Long> longTriple1 = new Triple<Long, Long, Long>(1L, 2L, 3L);
|
||||||
|
Triple<Long, Long, Long> longTriple2 = new Triple<Long, Long, Long>(1L, 2L, 3L);
|
||||||
|
Triple<Long, Long, Long> longTriple3 = new Triple<Long, Long, Long>(3L, 2L, 1L);
|
||||||
|
assertEquals(1L, longTriple1.getA());
|
||||||
|
assertEquals(2L, longTriple1.getB());
|
||||||
|
assertEquals(3L, longTriple1.getC());
|
||||||
|
assertEquals(true, longTriple1.equals(longTriple1));
|
||||||
|
assertEquals(true, longTriple1.equals(longTriple2));
|
||||||
|
assertEquals(false, longTriple1.equals(longTriple3));
|
||||||
|
assertEquals(false, longTriple1.equals(1L));
|
||||||
|
assertEquals(Long.hashCode(1) + Long.hashCode(2) * Long.hashCode(3), longTriple1.hashCode());
|
||||||
|
assertEquals("[1, 2, 3]", longTriple1.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
//JavaClasses/src/test/java/com/mattrixwv/generators/TestHexagonalNumberGenerator.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
||||||
|
public class TestHexagonalNumberGenerator{
|
||||||
|
@Test
|
||||||
|
public void hexagonalNumberGeneratorTest(){
|
||||||
|
HexagonalNumberGenerator gen = new HexagonalNumberGenerator();
|
||||||
|
List<Long> nums = Arrays.asList(1L, 6L, 15L, 28L, 45L, 66L, 91L, 120L, 153L);
|
||||||
|
ArrayList<Long> generatedNums = new ArrayList<>();
|
||||||
|
for(int cnt = 0;cnt < nums.size();++cnt){
|
||||||
|
generatedNums.add(gen.next());
|
||||||
|
}
|
||||||
|
assertEquals(nums, generatedNums);
|
||||||
|
assertEquals(true, gen.hasNext());
|
||||||
|
assertEquals(true, HexagonalNumberGenerator.isHexagonal(153L));
|
||||||
|
assertEquals(false, HexagonalNumberGenerator.isHexagonal(154L));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
//JavaClasses/src/test/java/com/mattrixwv/generators/TestPentagonalNumberGenerator.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
||||||
|
public class TestPentagonalNumberGenerator{
|
||||||
|
@Test
|
||||||
|
public void pentagonalNumberGeneratorTest(){
|
||||||
|
PentagonalNumberGenerator gen = new PentagonalNumberGenerator();
|
||||||
|
List<Long> nums = Arrays.asList(1L, 5L, 12L, 22L, 35L, 51L, 70L, 92L, 117L);
|
||||||
|
ArrayList<Long> generatedNums = new ArrayList<>();
|
||||||
|
for(int cnt = 0;cnt < nums.size();++cnt){
|
||||||
|
generatedNums.add(gen.next());
|
||||||
|
}
|
||||||
|
assertEquals(nums, generatedNums);
|
||||||
|
assertEquals(true, gen.hasNext());
|
||||||
|
assertEquals(true, PentagonalNumberGenerator.isPentagonal(117L));
|
||||||
|
assertEquals(false, PentagonalNumberGenerator.isPentagonal(118L));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,7 +19,7 @@ Copyright (C) 2022 Matthew Ellison
|
|||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package mattrixwv;
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
//JavaClasses/src/test/java/com/mattrixwv/generators/TestTriangularNumberGenerator.java
|
||||||
|
//Mattrixwv
|
||||||
|
// Created: 08-20-22
|
||||||
|
//Modified: 08-20-22
|
||||||
|
/*
|
||||||
|
Copyright (C) 2022 Matthew Ellison
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.mattrixwv.generators;
|
||||||
|
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
||||||
|
public class TestTriangularNumberGenerator{
|
||||||
|
@Test
|
||||||
|
public void triangularNumberGeneratorTest(){
|
||||||
|
TriangularNumberGenerator gen = new TriangularNumberGenerator();
|
||||||
|
List<Long> nums = Arrays.asList(1L, 3L, 6L, 10L, 15L, 21L, 28L, 36L, 45L);
|
||||||
|
ArrayList<Long> generatedNums = new ArrayList<>();
|
||||||
|
for(int cnt = 0;cnt < nums.size();++cnt){
|
||||||
|
generatedNums.add(gen.next());
|
||||||
|
}
|
||||||
|
assertEquals(nums, generatedNums);
|
||||||
|
assertEquals(true, gen.hasNext());
|
||||||
|
assertEquals(true, TriangularNumberGenerator.isTriangular(55L));
|
||||||
|
assertEquals(false, TriangularNumberGenerator.isTriangular(54L));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user