/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.marketdata.manipulator.dsl;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.Test;
import com.opengamma.util.test.TestGroup;
@Test(groups = TestGroup.UNIT)
public class SimulationUtilsTest {
@Test
public void patternForGlob() {
assertEquals("\\Qfoo\\E.\\Qbar\\E", patternFor("foo?bar"));
assertEquals(".\\Qfoobar\\E", patternFor("?foobar"));
assertEquals("\\Qfoobar\\E.", patternFor("foobar?"));
assertEquals("\\Qfoo\\E..\\Qbar\\E", patternFor("foo??bar"));
assertEquals("..\\Qfoobar\\E", patternFor("??foobar"));
assertEquals("\\Qfoobar\\E..", patternFor("foobar??"));
assertEquals(".\\Qfoobar\\E.", patternFor("?foobar?"));
assertEquals(".*?\\Qfoobar\\E.*?", patternFor("*foobar%"));
assertEquals("\\Qfoo\\E.*?\\Qbar\\E", patternFor("foo*bar"));
assertEquals("\\Qf\\E.\\Qoo\\E.*?\\Qbar\\E", patternFor("f?oo*bar"));
assertEquals("\\Qf\\E.\\Qoo\\E.*?\\Qbar\\E", patternFor("f?oo%bar"));
}
@Test
public void globMatches() {
assertTrue(matches("foo?bar", "fooxbar"));
assertFalse(matches("foo?bar", "foobar"));
assertFalse(matches("foo?bar", "fooxxbar"));
assertTrue(matches("foo*bar", "fooxxbar"));
assertTrue(matches("foo*bar", "fooxbar"));
assertTrue(matches("foo*bar", "foobar"));
assertTrue(matches("foo%bar", "fooxxbar"));
assertTrue(matches("foo%bar", "fooxbar"));
assertTrue(matches("foo%bar", "foobar"));
assertFalse(matches("?foo%bar", "foobar"));
assertTrue(matches("?foo%bar", "xfoobar"));
assertTrue(matches("?foo%bar", "xfooxbar"));
assertTrue(matches("?foo%bar", "xfooxxbar"));
assertTrue(matches("f??oo%bar", "fxxooxxbar"));
assertFalse(matches("f??oo%bar", "fxooxxbar"));
assertTrue(matches("$?^", "$A^"));
assertTrue(matches("$*^", "$ABC^"));
assertTrue(matches("$%^", "$ABC^"));
}
@SuppressWarnings("deprecation")
private static boolean matches(String glob, String str) {
return SimulationUtils.patternForGlob(glob).matcher(str).matches();
}
@SuppressWarnings("deprecation")
private static String patternFor(String glob) {
return SimulationUtils.patternForGlob(glob).pattern();
}
}