CountNodes: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=== Beschreibung ===
=== Beschreibung ===


Die Funktion ''countNodes'' ruft die Methode ''getNumberOfNodes'' des entsprechenden OpenMathObjektes auf. In den implementierten OpenMathObjekten ist jedoch diese Funktion nicht implementiert
Die Funktion ''countNodes'' ruft die Methode ''getNumberOfNodes'' des entsprechenden OpenMathObjektes auf und zählt die Knoten des OpenMathObjektes. (In den implementierten OpenMathObjekten ist jedoch diese Funktion nicht implementiert)


=== Syntax ===
=== Syntax ===
Zeile 7: Zeile 7:


=== Parameter ===
=== Parameter ===
* '''argument''' - die Expression, dessen Knoten gezhält werden sollen
* '''argument''' - die Expression, dessen Knoten gezählt werden sollen


=== Return Value ===
=== Return Value ===
*Gibt die Anzahl der Knoten zurück
* Gibt die Anzahl der Knoten zurück


=== Beispiele ===
=== Beispiele ===
Zeile 84: Zeile 84:


=== Hinweise ===
=== Hinweise ===
* Diese Methode liefert immer den Wert 1 zurück, da dies in den einzelnen OpenMathObjekten nicht implementiert ist
*  


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Evaluatorfunktion]]

Version vom 4. Juli 2017, 12:55 Uhr

Beschreibung

Die Funktion countNodes ruft die Methode getNumberOfNodes des entsprechenden OpenMathObjektes auf und zählt die Knoten des OpenMathObjektes. (In den implementierten OpenMathObjekten ist jedoch diese Funktion nicht implementiert)

Syntax

countNodes(Expression argument)

Parameter

  • argument - die Expression, dessen Knoten gezählt werden sollen

Return Value

  • Gibt die Anzahl der Knoten zurück

Beispiele

Standardfälle

Benutzung mit Variablen

countNodes([pos=1])
countNodes([var=a])

JUnit Tests

[Anzeigen]

@Before 
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("1"));
		
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("1"));
}
	
@Test 
public void testCountNodes() {
  assertTrue(3 == getEvaluator().getNumberResult("countNodes(2+2)"));
  assertTrue(5 == getEvaluator().getNumberResult("countNodes(3*(2+2))"));
  assertTrue(5 == getEvaluator().getNumberResult("countNodes(3*(a+2))"));
  assertFalse(1 ==getEvaluator().getNumberResult("countNodes(2+2)"));
}
	
@Test 
public void testCountNodesWithInput() {
  assertTrue(1 == getEvaluator().getNumberResult("countNodes([pos=2])"));
  assertTrue(5 == getEvaluator().getNumberResult("countNodes(3*([pos=1]+2))"));
}
	
@Test 
public void testCountNodesWithVariables() {
  assertTrue(1 == getEvaluator().getNumberResult("countNodes([var=a])"));
  assertTrue(5 == getEvaluator().getNumberResult("countNodes(3*([var=a]+2))"));
}
	
@Test 
public void testCountNodesWithExpressions() {
  assertTrue(1 == getEvaluator().getNumberResult("countNodes('countNodes(2+2)')"));
}
	
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testCountNodesWithWrongInputCharacter() {
  getEvaluator().getNumberResult("countNodes(a)");
}
	
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCountNodesWithTwoArguments() {
  getEvaluator().getNumberResult("countNodes(3, 2)");
}
	
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCountNodesWithThreeArguments() {
  getEvaluator().getNumberResult("countNodes(1, 2, 3)");
}
	
@Test (expected=UndefinedExerciseVariableException.class)
public void testCountNodesWithMissingExcerciseVariable() {
  getEvaluator().getNumberResult("countNodes('[var=j]')");
}
	
@Test (expected=UndefinedFillInVariableException.class)
public void testCountNodesWithMissingInput() {
  getEvaluator().getNumberResult("countNodes('[pos=42]')");
}

Hinweise