class StandardFunctionFactory {

  public static StandardFunction getByName(String functionName) {
    StandardFunction standardFunction = ALL.get(functionName.toLowerCase(Locale.ENGLISH));
    return standardFunction != null ? standardFunction : new UnknownFunction(functionName);
  }

}

class StandardFunctionFactoryTest {

  @Test
  public void should_return_a_valid_rotatex_function_object_mix_uppercase_lowercase_test() {

    StandardFunction function = StandardFunctionFactory.getByName("rotateX");
    assertEquals(Rotatex.class, function.getClass());
    assertEquals(function.getName(), "rotatex");
    assertEquals(function.getLinks().size(), 1);
    assertEquals(function.getLinks().get(0), "https://drafts.csswg.org/css-transforms/#three-d-transform-functions");
    assertEquals(function.isExperimental(), false);
    assertEquals(function.isObsolete(), false);
  }

}