DependsOn: Unterschied zwischen den Versionen

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


====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:23 Uhr

Beschreibung

Die Funktion dependsOn prüft, ob ein Ausdruck von einer bestimmten Variable abhängt. Sie erwartet zwei Werte, zum einen die Expression und zum anderen die Variable. Die Funktion gibt einen Boolean zurück.

Syntax

dependsOn(Expression term, String variable)

Parameter

  • term - der Ausdruck, der nach Abhängigkeit der Variable geprüft wird
  • variable - die Variable, von der der Ausdruck abhängen soll

Return Value

  • Gibt einen Boolean zurück, true wenn der Ausdruck von der Variable abhängt, ansonsonsten false.

Beispiele

dependsOn('2x^2 + 3x + 6','x')    --> returns true
dependsOn('2x+3a-b','y')    --> returns false

JUnit Tests

[Anzeigen]

@Before 
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("x"));
  placeFillInVariable(2, OMParser.parse("y"));
		
  placeExerciseVariable("a", OMParser.parse("x"));
  placeExerciseVariable("b", OMParser.parse("y"));
}
	
@Test
public void testDependsOn() {
  assertTrue(getEvaluator().getBooleanResult("dependsOn('2x+3m-n+2b','m')"));
  assertTrue(!getEvaluator().getBooleanResult("dependsOn('2x+3a-x+2b','y')"));
		
  assertTrue(getEvaluator().getBooleanResult("dependsOn(2x+3m-n+2b, m)"));
  assertTrue(getEvaluator().getBooleanResult("dependsOn(m, m)"));
  assertTrue(!getEvaluator().getBooleanResult("dependsOn(0, 0)"));
}

@Test
public void testDependsOnWithInput() {
  assertTrue(!getEvaluator().getBooleanResult("dependsOn('2x+3a-x+2b','[pos=2]')"));
  assertTrue(getEvaluator().getBooleanResult("dependsOn('[pos=1]','x')"));
}

@Test
public void testDependsOnWithVariables() {
  assertTrue(getEvaluator().getBooleanResult("dependsOn('2*[var=a]+3a-[var=a]+2b','x')"));
  assertTrue(getEvaluator().getBooleanResult("dependsOn('2[var=b]+3a-x+2b','y')"));
  assertTrue(!getEvaluator().getBooleanResult("dependsOn('2a+a+4','[var=a]')"));
}
	
@Test
public void testDependsOnWithONECharacter() {
  assertTrue(getEvaluator().getBooleanResult("dependsOn(a, a)"));
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testDependsOnWithEmptyStringArguments() {
  getEvaluator().getNumberResult("dependsOn('', '')");
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testDependsOnWithEmptyArgument() {
  getEvaluator().getNumberResult("dependsOn()");
}
	
@Test(expected=UndefinedExerciseVariableException.class)
public void testDependsOnWithoutExerciseVariable() {
  getEvaluator().getNumberResult("dependsOn([var=j], [var=j])");
}
	
@Test(expected=UndefinedFillInVariableException.class)
public void testDependsOnWithoutInput() {
  getEvaluator().getNumberResult("dependsOn([pos=42], [pos=42])");
}

Hinweise