CompareTo: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:


====JUnit Tests====
====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Before  
@Before  
public void beforeTest() {
public void beforeTest() {

Version vom 27. Juni 2017, 10:11 Uhr

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

[Anzeigen]

@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.