Integrate: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Die Funktion ''integrate'' integriert eine Funktion. Sie erwartet zwei Strings, den Ausdruck der integriert werden soll und die Variable nach der integriert werden soll. Die Funktion gibt einen String zurück.
Die Funktion ''integrate'' integriert eine Funktion. Sie erwartet zwei Strings, den Ausdruck der integriert werden soll und die Variable nach der integriert werden soll. Die Funktion gibt einen String zurück.
Zeile 13: Zeile 16:


===Beispiele===
===Beispiele===
==== Standardfälle ====
'''Jack2:'''
  integrate('2','x')    --> returns 2*x
  integrate('2','x')    --> returns 2*x
integrate('x^3 + x^2 + x', 'x')    --> returns \( \frac{1}{4} \cdot x^4 + \frac{1}{3} \cdot x^3 + \frac{1}{2} \cdot x^2 \)


====JUnit Tests====
'''Jack3:'''
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
integrate(2, x)   --> returns 2*x
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
integrate(x^3 + x^2 + x, x)   --> returns \( \frac{1}{4} \cdot x^4 + \frac{1}{3} \cdot x^3 + \frac{1}{2} \cdot x^2 \)
@BeforeClass
public static void beforeTest() throws FunctionNotImplementedException, UndefinedFillInVariableException,
UndefinedExerciseVariableException, ParserException, ErroneousFillInVariableException, ErroneousExerciseVariableException {
integrateFillInVariableMap.put(1, ExpressionParser.parse("2", null, null));
integrateFillInVariableMap.put(2, ExpressionParser.parse("1", null, null));
 
integrateExerciseVariableMap.put("a", ExpressionParser.parse("2", null, null));
integrateExerciseVariableMap.put("b", ExpressionParser.parse("1", null, null));
}
 
@Test
public void testIntegrate1() {
assertEquals(ExpressionParser.parse("2*x", null, null), Evaluator.evaluate(
"integrate('2','x')", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test
public void testIntegrate2() {
assertEquals(ExpressionParser.parse("2*y", null, null), Evaluator.evaluate(
"integrate('2','y')", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test
public void testIntegrateWithInput1() {
assertEquals(ExpressionParser.parse("2*x", null, null), Evaluator.evaluate(
"integrate('[pos=1]','x')", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test
public void testIntegrateWithInput2() {
assertEquals(ExpressionParser.parse("y", null, null), Evaluator.evaluate(
"integrate('[pos=2]','y')", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test
public void testIntegrateWithVariables1() {
assertEquals(ExpressionParser.parse("2*x", null, null), Evaluator.evaluate(
"integrate('[var=a]','x')", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test
public void testIntegrateWithVariables2() {
assertEquals(ExpressionParser.parse("y", null, null), Evaluator.evaluate(
"integrate('[var=b]','y')", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test
public void testIntegrateWithONECharacter() {
ArrayList<Object> rational = new ArrayList<>();
rational.add(OMCreator.createOMI(1));
rational.add(OMCreator.createOMI(2));
ArrayList<Object> power = new ArrayList<>();
power.add(OMCreator.createOMV("a"));
power.add(OMCreator.createOMI(2));
ArrayList<Object> expected = new ArrayList<>();
expected.add(OMCreator.createOMA(OMSymbol.NUMS1_RATIONAL, rational));
expected.add(OMCreator.createOMA(OMSymbol.ARITH1_POWER, power));
OMOBJ expect = OMCreator.createOMOBJ(OMCreator.createOMA(OMSymbol.ARITH1_TIMES, expected));
//Creating OMOBJ (1/2)*(a^2) --> This is also a correct answer!
assertEquals(expect, Evaluator.evaluate(
"integrate(a, a)", integrateExerciseVariableMap, integrateFillInVariableMap));
}
 
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testIntegrateWithEmptyStringArguments() {
Evaluator.evaluate("integrate('','')", integrateExerciseVariableMap,
integrateFillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testIntegrateWithEmptyArgument() {
Evaluator.evaluate("integrate()", integrateExerciseVariableMap, integrateFillInVariableMap);
fail();
}


@Test(expected = UndefinedExerciseVariableException.class)
==== Benutzung mit Variablen ====
public void testIntegrateWithMissingExerciseVariable() {
integrate([var=a], y)
Evaluator.getNumberResult("integrate('y', '[var=j]')", integrateExerciseVariableMap,
integrateFillInVariableMap);
fail();
}


@Test(expected = UndefinedFillInVariableException.class)
==== Bentzung mit studentischen Eingaben ====
public void testIntegrateWithMissingInput() {
'''Jack3:'''
Evaluator.getNumberResult("integrate('y', '[pos=42]')", integrateExerciseVariableMap,
integrate([input=field1], x)
integrateFillInVariableMap);
fail();
}
</syntaxhighlight>


===Hinweise===
===Hinweise===


[[Kategorie:Evaluatorfunktion]][[Kategorie:Ausdruckfunktionen]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Ausdruckfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 17. April 2024, 09:01 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion integrate integriert eine Funktion. Sie erwartet zwei Strings, den Ausdruck der integriert werden soll und die Variable nach der integriert werden soll. Die Funktion gibt einen String zurück.

Syntax

integrate(Ausdruck term, Zeichen variable)

Parameter

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

Return Value

  • Gibt den Ausdruck zurück der die integrierte Funktion darstellt.

Beispiele

Standardfälle

Jack2:
integrate('2','x')    --> returns 2*x
integrate('x^3 + x^2 + x', 'x')    --> returns \( \frac{1}{4} \cdot x^4 + \frac{1}{3} \cdot x^3 + \frac{1}{2} \cdot x^2 \)
Jack3:
integrate(2, x)    --> returns 2*x
integrate(x^3 + x^2 + x, x)    --> returns \( \frac{1}{4} \cdot x^4 + \frac{1}{3} \cdot x^3 + \frac{1}{2} \cdot x^2 \)

Benutzung mit Variablen

integrate([var=a], y)

Bentzung mit studentischen Eingaben

Jack3:
integrate([input=field1], x)

Hinweise