### Question:
FunctionDefinitionStringEqualIgnoreCase extends FunctionDefinitionEquality<String> { public FunctionDefinitionStringEqualIgnoreCase(Identifier idIn) { super(idIn, DataTypes.DT_STRING); } FunctionDefinitionStringEqualIgnoreCase(Identifier idIn);   }### Answer:
@Test public void testFunctionDefinitionStringEqualIgnoreCase() { FunctionDefinitionEquality<?> fd = (FunctionDefinitionEquality<?>) StdFunctions.FD_STRING_EQUAL_IGNORE_CASE; assertEquals(XACML3.ID_FUNCTION_STRING_EQUAL_IGNORE_CASE, fd.getId()); assertEquals(DataTypes.DT_STRING.getId(), fd.getDataTypeArgs().getId()); assertEquals(DataTypes.DT_BOOLEAN.getId(), fd.getDataTypeId()); assertFalse(fd.returnsBag()); assertEquals(new Integer(2), fd.getNumArgs()); arguments.add(stringAttr1); arguments.add(stringAttr2); ExpressionResult res = fd.evaluate(null, arguments); assertTrue(res.isOk()); Boolean resValue = (Boolean)res.getValue().getValue(); assertTrue(resValue); arguments.clear(); arguments.add(stringAttr1); arguments.add(stringAttr3); res = fd.evaluate(null, arguments); assertTrue(res.isOk()); resValue = (Boolean)res.getValue().getValue(); assertTrue(resValue); arguments.clear(); arguments.add(stringAttr1); arguments.add(intAttr1); res = fd.evaluate(null, arguments); assertFalse(res.isOk()); }