Exp

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Beschreibung

Die Funktion exp repräsentiert die Exponentialfunktion, sie gibt den Wert <math>e^x</math> an der Stelle x an. Die Funktion erwartet eine Zahl und gibt eine Zahl zurück.

Syntax

exp(float x)

Parameter

  • x - der x-Wert der Exponentialfunktion

Return Value

  • Gibt eine rationale Zahl zurück

Beispiele

Standardfälle

exp('1')   --> returns 2.71828182845
exp('-0.1')   --> returns 0.9048374180359595

Benutzung mit Variablen

exp('[pos=1]')
exp('[var=a]')

JUnit Tests

[Anzeigen]

@Before 
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("10"));

  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("10"));
}

@Test
public void testExp(){
  assertTrue(1 == getEvaluator().getNumberResult("exp(0)"));
  assertTrue(2.71828182845 < getEvaluator().getNumberResult("exp(1)") && getEvaluator().getNumberResult("exp(1)") < 2.71828182846);
  assertTrue(0 == getEvaluator().getNumberResult("exp(-1000)"));
  assertTrue(0.9048374180359595 == getEvaluator().getNumberResult("exp(-0.1)"));
}

@Test
public void testExpWithInput(){
  assertTrue(1 == getEvaluator().getNumberResult("exp([pos=1])"));
  assertTrue(22026.465794806718 == getEvaluator().getNumberResult("exp([pos=2])"));
}

@Test
public void testExpWithVariables(){
  assertTrue(1 == getEvaluator().getNumberResult("exp([var=a])"));
  assertTrue(22026.465794806718 == getEvaluator().getNumberResult("exp([var=b])"));
}

@Test
public void testExpWithPointNumber(){
  assertTrue(getEvaluator().getNumberResult("exp(0.1)") == getEvaluator().getNumberResult("exp(.1))"));
}

@Test
public void testExpWithExpressions(){
  assertTrue(1 == getEvaluator().getNumberResult("exp(exp(-1000))"));
}	

@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testExpWithWrongInputCharacter(){
  getEvaluator().getNumberResult("exp(a)");
}

@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testExpWithTwoArguments(){
  getEvaluator().getNumberResult("exp(0, 1)");
}

@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testExpWithThreeArguments(){
  getEvaluator().getNumberResult("exp(1, 2.71,  2)");
}

@Test(expected=UndefinedExerciseVariableException.class)
public void testExpWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("exp([var=j])");
}

@Test(expected=UndefinedFillInVariableException.class)
public void testExpWithMissingInput(){
  getEvaluator().getNumberResult("getDenominator([pos=42])");
}

Hinweise

  • Aufgrund von der Rechengenauigkeit des Computers, wird in jedem Fall eine rationale Zahl zurückgegeben. Sollte der tatsächliche Funktionswert irrational sein, wird entsprechend gerundet.