Derive: 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:41 Uhr

Beschreibung

Die Funktion derive leitet eine Funktion ab. Sie benötigt zwei Strings, den Ausdruck der abgeleitet werden soll und die Variable nach der abgeleitet werden soll. Die Funktion gibt die Ableitung zurück.

Syntax

derive(String term, String variable)

Parameter

  • term - die Funktion die abgeleitet werden soll
  • variable - die Variable nach der abgeleitet werden soll

Return Value

  • Gibt den Wert zurück, der die abgeleitete Funktion darstellt.

Beispiele

derive('x^2+2x+3','x')    --> returns '2x+2'
derive('x^2+2x+3','y')    --> returns '0'

JUnit Tests

[Anzeigen]

@Before 
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("x"));
  placeFillInVariable(2, OMParser.parse("0.5"));
		
  placeExerciseVariable("a", OMParser.parse("x"));
  placeExerciseVariable("b", OMParser.parse("0.5"));
}
	
@Test
public void testDerive() {
  assertTrue("'2*x'".equals(getEvaluator().getResultAsEvaluatorString("derive('x^2','x')")));
  assertTrue("'0'".equals(getEvaluator().getResultAsEvaluatorString("derive('x^2','y')")));
		
  assertTrue("'2+2*x'".equals(getEvaluator().getResultAsEvaluatorString("derive('x^2 + 2x','x')")));
  assertTrue("'x'".equals(getEvaluator().getResultAsEvaluatorString("derive('0.5*x^2','x')")));
  assertTrue("'x'".equals(getEvaluator().getResultAsEvaluatorString("derive('.5*x^2','x')")));
  assertTrue("'1+2*x'".equals(getEvaluator().getResultAsEvaluatorString("derive('x^2+x+3','x')")));
		
  assertTrue("'2*x*y^2'".equals(getEvaluator().getResultAsEvaluatorString("derive('(x*y)^2','x')")));
}
	
@Test
public void testDeriveWithInput() {
  assertTrue("'x'".equals(getEvaluator().getResultAsEvaluatorString("derive('0.5*x^2 + 3','x')")));
  assertTrue("'2+2*x'".equals(getEvaluator().getResultAsEvaluatorString("derive('[pos=1]^2 + 2[pos=1] + 4','x')")));
}
	
@Test 
public void testDeriveWithExpressions(){
  assertTrue("'1'".equals(getEvaluator().getResultAsEvaluatorString("'derive(derive('0.5*x^2', 'x')', 'x'")));
}

@Test
public void testDeriveWithVariables() {
  assertTrue("'x'".equals(getEvaluator().getResultAsEvaluatorString("derive('0.5*x^2 + 3','x')")));
  assertTrue("'2+2*x'".equals(getEvaluator().getResultAsEvaluatorString("derive('[var=a]^2 + 2[var=a] + 4','x')")));
}
	
@Test
public void testDeriveWithONECharacter(){
  assertTrue("'1'".equals(getEvaluator().getResultAsEvaluatorString("derive(a, a)")));
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testDeriveWithEmptyStringArguments(){
  getEvaluator().getResultAsEvaluatorString("derive('', '')");
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testDeriveWithEmptyArgument(){
  getEvaluator().getResultAsEvaluatorString("derive()");
}
	
@Test(expected=UndefinedExerciseVariableException.class)
public void testDeriveWithoutExerciseVariable() {
  getEvaluator().getResultAsEvaluatorString("derive([var=j], [var=j])");
}
	
@Test(expected=UndefinedFillInVariableException.class)
public void testDeriveWithoutInput() {
  getEvaluator().getResultAsEvaluatorString("derive([pos=42], [pos=42])");
}

Hinweise

  • Die Funktion derive kann z.B. mit der Funktion equalsExpr abgefragt werden:
equalsExpr(derive('x^2+x+3','x'),'2x+1')