@@ -0,0 +1,2110 @@
+/*%0A * Java Genetic Algorithm Library (@__identifier__@).%0A * Copyright (c) @__year__@ Franz Wilhelmst%C3%B6tter%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A *%0A * Author:%0A *    Franz Wilhelmst%C3%B6tter (franz.wilhelmstoetter@gmail.com)%0A */%0Apackage io.jenetics.ext.internal;%0A%0Aimport static io.jenetics.CharacterGene.DEFAULT_CHARACTERS;%0A%0Aimport java.util.Objects;%0Aimport java.util.Random;%0Aimport java.util.stream.Collectors;%0A%0Aimport org.testng.Assert;%0Aimport org.testng.annotations.DataProvider;%0Aimport org.testng.annotations.Test;%0A%0A/**%0A * @author %3Ca href=%22mailto:franz.wilhelmstoetter@gmail.com%22%3EFranz Wilhelmst%C3%B6tter%3C/a%3E%0A */%0Apublic class EscaperTest %7B%0A%0A%09private static final Escaper ESCAPER = new Escaper('%5C%5C', 'a', 'b', 'c');%0A%0A%09@Test(dataProvider = %22strings%22)%0A%09public void escape(final String original, final String escaped) %7B%0A%09%09final String esc = ESCAPER.escape(original);%0A%09%09final String orig = ESCAPER.unescape(esc);%0A%0A%09%09Assert.assertEquals(esc, escaped);%0A%09%09Assert.assertEquals(orig, original);%0A%09%7D%0A%0A%09@DataProvider%0A%09public Object%5B%5D%5B%5D strings() %7B%0A%09%09return new Object%5B%5D%5B%5D %7B%0A%09%09%09%7B%22%22, %22%22%7D,%0A%09%09%09%7B%22t%22, %22t%22%7D,%0A%09%09%09%7B%22a%22, %22%5C%5Ca%22%7D,%0A%09%09%09%7B%22%5C%5C%22, %22%5C%5C%22%7D%0A%09%09%7D;%0A%09%7D%0A%0A%09@Test(invocationCount = 10)%0A%09public void escapeRandomStrings() %7B%0A%09%09final String original = nextString(new Random());%0A%09%09final String escaped = ESCAPER.escape(original);%0A%09%09Assert.assertEquals(ESCAPER.unescape(escaped), original);%0A%09%7D%0A%0A%09private static String nextString(final Random random) %7B%0A%09%09return random.ints(0, DEFAULT_CHARACTERS.length())%0A%09%09%09.limit(100)%0A%09%09%09.mapToObj(DEFAULT_CHARACTERS::get)%0A%09%09%09.map(Objects::toString)%0A%09%09%09.collect(Collectors.joining());%0A%09%7D%0A%0A%7D%0A

Add tests for 'Escaper' class.