From bd10e078de257834db8b7193f39e6285f5a32b18 Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Sun, 27 Dec 2015 15:05:06 +0100 Subject: [PATCH] More StringTools tests refs #53 --- .../paramcontrol/SingleParamAdaption.java | 2 +- .../paramcontrol/SinusoidalParamAdaption.java | 2 +- src/test/java/eva2/tools/StringToolsTest.java | 65 +++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/main/java/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java b/src/main/java/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java index ce0d072e..443c93e8 100644 --- a/src/main/java/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java +++ b/src/main/java/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java @@ -10,7 +10,7 @@ package eva2.optimization.operator.paramcontrol; ///** // * Adapt an instance parameter by time, from given start to end value. // * This only works if iterations are known. The new variant allows exponential adaption, -// * where the second parameter (endV) is interpreted as halfing time in percent of the +// * where the second parameter (endV) is interpreted as halving time in percent of the // * full run. // * // * @author mkron diff --git a/src/main/java/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java b/src/main/java/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java index b647d602..7d3153ff 100644 --- a/src/main/java/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java +++ b/src/main/java/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java @@ -11,7 +11,7 @@ import java.io.Serializable; * frequency, turning sin(t) into sin(((t+1)^d)-1) which is linear for d=1. For slightly smaller values, * the frequency slowly decreases, while for slightly larger values, it slowly increases. */ -@Description("Sinusoidally oscillating value, the frequency may be varyied with time. E.g. use dampening 0.9 " + +@Description("Sinusoidally oscillating value, the frequency may be varied with time. E.g. use dampening 0.9 " + "for a slightly decreasing frequency, dampening 1.1 for a slight increase. The frequency is modified " + "in the form sin(t) -> sin(-1+(t+1)^d)") public class SinusoidalParamAdaption implements InterfaceHasUpperDoubleBound, ParamAdaption, GenericParamAdaption, Serializable { diff --git a/src/test/java/eva2/tools/StringToolsTest.java b/src/test/java/eva2/tools/StringToolsTest.java index ac6095d0..a2d7e76a 100644 --- a/src/test/java/eva2/tools/StringToolsTest.java +++ b/src/test/java/eva2/tools/StringToolsTest.java @@ -2,7 +2,9 @@ package eva2.tools; import org.junit.Test; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import static org.junit.Assert.assertEquals; @@ -110,4 +112,67 @@ public class StringToolsTest { assertEquals("This is a string 12", StringTools.subscriptIndices("This is a string 12")); assertEquals("ϕ10", StringTools.subscriptIndices("ϕ10")); } + + @Test + public void testDeleteChar() throws Exception { + assertEquals("Taylor", StringTools.deleteChar('s', "Taylors")); + assertEquals("Swift", StringTools.deleteChar('q', "Swift")); + } + + @Test + public void testGetSubstringAfterLast() throws Exception { + assertEquals("Swift", StringTools.getSubstringAfterLast("TaylorSwift", 'r')); + assertEquals("Bad Blood", StringTools.getSubstringAfterLast("Bad Blood", 'q')); + } + + @Test + public void testConcatFields() throws Exception { + List list = new ArrayList<>(); + list.add("Taylor"); + list.add("Swift"); + list.add("Bad"); + + assertEquals("Taylor,Swift,Bad", StringTools.concatFields(list, ",")); + + assertEquals("Taylor,Swift,Bad,Blood", StringTools.concatFields( + new String[]{"Taylor", "Swift", "Bad", "Blood"}, + "," + )); + } + + @Test + public void testExpandPrefixZeros() throws Exception { + assertEquals("01", StringTools.expandPrefixZeros(1, 19)); + assertEquals("0001", StringTools.expandPrefixZeros(1, 1900)); + assertEquals("000001", StringTools.expandPrefixZeros(1, 219837)); + assertEquals("00001", StringTools.expandPrefixZeros(1, 12398)); + } + + @Test + public void testConcatValues() throws Exception { + List list = new ArrayList<>(); + list.add("Foo"); + list.add(12); + list.add("Sieben"); + assertEquals("Foo;12;Sieben", StringTools.concatValues(list, ";")); + } + + @Test + public void testSimplifySymbols() throws Exception { + assertEquals("foo-bar", StringTools.simplifySymbols("foo--bar")); + assertEquals("foo_bar", StringTools.simplifySymbols("foo__bar")); + assertEquals("foo_bar", StringTools.simplifySymbols("foo_-bar")); + assertEquals("foo_bar", StringTools.simplifySymbols("foo-_bar")); + + assertEquals("foobar", StringTools.simplifySymbols("f(o){o}b*[a]r")); + + assertEquals("foo-bar", StringTools.simplifySymbols("foo;bar")); + assertEquals("foo-bar", StringTools.simplifySymbols("foo,bar")); + assertEquals("foo-bar", StringTools.simplifySymbols("foo\\bar")); + assertEquals("foo-bar", StringTools.simplifySymbols("foo/bar")); + + assertEquals("foo_bar", StringTools.simplifySymbols("foo bar")); + assertEquals("foo_bar", StringTools.simplifySymbols("foo\n\tbar")); + assertEquals("foo_bar_", StringTools.simplifySymbols("foo\tbar\n")); + } }