IsPolynomial: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Die Funktion ''isPolynomial'' prüft, ob ein Ausdruck ein Polynom ist. Es können nur Polynome in einer Variable überprüft werden. Die Funktion benötigt zwei Strings, den zu überprüfenden Ausdruck und die Variable in welcher der Ausdruck ein Polynom sein soll. Sie gibt einen Boolean zurück.
Die Funktion ''isPolynomial'' prüft, ob ein Teil-[[Ausdruck]] ein Polynom ist. Es können Ausdrücke auf eine Variable überprüft werden, ob diese einem Polynom entsprechen. Die Funktion benötigt zwei Parameter, den zu überprüfenden [[Ausdruck]] und das [[Zeichen]] (oder Variable). Die Funktion gibt einen boolischen Wert ([[Boolean]]) zurück.


===Syntax===
===Syntax===
  isPolynomial(String term, String variable)
  isPolynomial([[Ausdruck]] term, [[Zeichen]] variable)


===Parameter===
===Parameter===
Zeile 10: Zeile 13:


===Return Value===
===Return Value===
* Gibt einen Boolean zurück.
* Gibt einen [[Boolean]] zurück.


===Beispiele===
===Beispiele===
  isPolynomial('x^2+x+1','x')   --> returns ''true''
  isPolynomial(x^2+x+1,x)    --> returns ''true''
isPolynomial(2*x, x) --> returns ''true''
isPolynomial(2*x, y) --> returns ''true'', da dieses Polynom mit 0*y erweitert werden kann
isPolynomial(0, x) --> returns ''true'', dieses mal mit 0*x
isPolynomial(sqrt(x) + 3*y, x) --> returns ''false'', denn sqrt(x) entspricht nicht einem Polynom
isPolynomial(sqrt(x) + 3*y, y) --> returns ''true'', denn 3*y entspricht einem Polynom (hier wird x nicht betrachtet)
isPolynomial(sqrt(x) + 3*y, z) --> returns ''true'', dieses mal 0*z


====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@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 testIsPolynomial() {
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('x^2+x+1','x')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('y^2+3y+4','y')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('3a^5+2a^3-a','a')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('m^3+2m-2','m')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('x^2+x+1','y')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('x','x')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('sin(x)+ y^3', 'y')"));
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('E^(x) + y^3', 'y')"));
  assertTrue(!getEvaluator().getBooleanResult("isPolynomial('sin(x)+ y^3', 'x')"));
  assertTrue(!getEvaluator().getBooleanResult("isPolynomial('E^(x) + y^3', 'x')"));
}
@Test
public void testIsPolynomialWithInput() {
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('x^2+x+1','[pos=1]')"));
}
@Test
public void testIsPolynomialWithVariables() {
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('x^2+x+1','[var=a]')"));
}
@Test//(expected=AssertionError.class)
public void testIsPolynomialWithNumberAsSecondArgument() {
  assertTrue(!getEvaluator().getBooleanResult("isPolynomial('sin(x)', '1')"));//Look if 1 is Polynomial
  assertTrue(getEvaluator().getBooleanResult("isPolynomial('E^(x)', '0')"));  //Look if 0 is Polynomial
  assertTrue(!getEvaluator().getBooleanResult("isPolynomial('x^2+x+1','2')"));//Look if 2 is Polynomial
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testIsPolynomialWithEmptyStringArguments() {
  getEvaluator().getBooleanResult(("isPolynomial('', '')"));
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testIsPolynomialWithEmptyArgument() {
  getEvaluator().getBooleanResult(("isPolynomial()"));
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testIsPolynomialWithoutExerciseVariable() {
  getEvaluator().getBooleanResult("isPolynomial('[var=j]', '[var=j]')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testIsPolynomialWithoutInput() {
  getEvaluator().getBooleanResult("isPolynomial('[pos=42]', '[pos=42]')");
}
</syntaxhighlight>
===Hinweise===
* Der Ausdruck muss ein Polynom sein!


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

Aktuelle Version vom 17. April 2024, 08:25 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion isPolynomial prüft, ob ein Teil-Ausdruck ein Polynom ist. Es können Ausdrücke auf eine Variable überprüft werden, ob diese einem Polynom entsprechen. Die Funktion benötigt zwei Parameter, den zu überprüfenden Ausdruck und das Zeichen (oder Variable). Die Funktion gibt einen boolischen Wert (Boolean) zurück.

Syntax

isPolynomial(Ausdruck term, Zeichen variable)

Parameter

  • term - der zu überprüfende Ausdruck
  • variable - die Variable

Return Value

Beispiele

isPolynomial(x^2+x+1,x)    --> returns true

isPolynomial(2*x, x) --> returns true

isPolynomial(2*x, y) --> returns true, da dieses Polynom mit 0*y erweitert werden kann

isPolynomial(0, x) --> returns true, dieses mal mit 0*x

isPolynomial(sqrt(x) + 3*y, x) --> returns false, denn sqrt(x) entspricht nicht einem Polynom

isPolynomial(sqrt(x) + 3*y, y) --> returns true, denn 3*y entspricht einem Polynom (hier wird x nicht betrachtet)

isPolynomial(sqrt(x) + 3*y, z) --> returns true, dieses mal 0*z