CompareTo
Zur Navigation springen
Zur Suche springen
Beschreibung
Die Funktion compareTo bestimmt wie sehr zwei Zeichenketten lexikografisch voneinander abweichen. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.
Syntax
compareTo(String zeichenkette1, String zeichenkette2)
Parameter
- zeichenkette1 - erste zu vergleichende Zeichenkette
- zeichenkette2 - zweite zu vergleichende Zeichenkette
Return Value
- Gibt eine Zahl zurück
Beispiele
compareTo('hallo','hallo') --> returns 0 compareTo('hallo','JACK') --> returns 30 compareTo('JACK','jack') --> returns -32
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("test"));
placeExerciseVariable("a", OMParser.parse("test"));
}
@Test
public void testCompareTo() {
assertTrue(0 == getEvaluator().getNumberResult("compareTo('Hallo','Hallo')"));
assertTrue(0 == getEvaluator().getNumberResult("compareTo('HAlLo','HAlLo')"));
assertTrue(0 < getEvaluator().getNumberResult("compareTo('jack','JACK')"));
assertTrue(0 < getEvaluator().getNumberResult("compareTo('paluno','JACK')"));
assertTrue(0 > getEvaluator().getNumberResult("compareTo('JACK','paluno')"));
assertTrue(0 != getEvaluator().getNumberResult("compareTo('2x+2y','2*(x+y)')"));
}
@Test
public void testCompareToWithInput() {
assertTrue(0 == getEvaluator().getNumberResult("compareTo('[pos=1]','test')"));
}
@Test
public void testCompareToWithVariables() {
assertTrue(0 == getEvaluator().getNumberResult("compareTo('[var=a]','test')"));
}
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testCompareToWithWrongInputCharacter() {
getEvaluator().getNumberResult("compareTo(a,'test')");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToWithOneArgument() {
getEvaluator().getNumberResult("compareTo('Hallo')");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToWithOneRationalAndOneTextArgument() {
getEvaluator().getNumberResult("compareTo(12, 'rational')");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToWithTwoRationalArguments() {
getEvaluator().getNumberResult("compareTo(1, 2)");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToWithThreeArguments() {
getEvaluator().getNumberResult("compareTo('hallo', 'hello', 'hillo')");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testCompareToWithMissingExcerciseVariable() {
getEvaluator().getNumberResult("compareTo('[var=j]', 'test')");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testCompareToWithMissingInput() {
getEvaluator().getNumberResult("compareTo('[pos=42]', 'test')");
}
Hinweise
- Die Funktion unterscheidet zwischen Groß- und Kleinschreibung.
- Steht der erste String lexikografisch vor dem zweiten String, ist die Rückgabe negativ. Umgekehrt ist die Rückgabe entsprechend positiv.