Root

Aus JACK Wiki
Version vom 25. Oktober 2017, 12:28 Uhr von Spobel (Diskussion | Beiträge) (Spobel verschob die Seite Sqrt nach Root)
Zur Navigation springen Zur Suche springen

Beschreibung

Die Funktion sqrt ermittelt die Wurzel einer Zahl. Die Funktion erwartet eine Zahl und gibt die Wurzel dieser Zahl zurück.

Syntax

sqrt(Gleitkommazahl zahl)

Parameter

  • zahl - die Zahl, zu der die Wurzel berechnet werden soll

Return Value

  • Gibt die Wurzel der Zahl zurück

Beispiele

Standardfälle

sqrt(16)   --> returns 4
sqrt(9)   --> returns 3

Benutzung mit Variablen

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

JUnit Tests

[Anzeigen]

@Before
public void beforeTest(){
  placeFillInVariable(2,OMParser.parse("4"));
  placeFillInVariable(34,OMParser.parse("34.3333"));
		
  placeExerciseVariable("a",OMParser.parse("16"));
  placeExerciseVariable("c",OMParser.parse("34.3333"));
}

@Test public void testSqrt(){
  assertTrue(2 == getEvaluator().getNumberResult("sqrt(4)"));
  assertTrue(3 == getEvaluator().getNumberResult("sqrt(9)"));
  assertTrue(2 == getEvaluator().getNumberResult("sqrt(sqrt(16))"));
  assertTrue(Math.sqrt(34.3333) == getEvaluator().getNumberResult("sqrt(34.3333)"));
  assertTrue(0 == getEvaluator().getNumberResult("sqrt(0)"));
}

@Test public void testSqrtWithInput(){
  assertTrue(2 == getEvaluator().getNumberResult("sqrt([pos=2])"));
  assertTrue(Math.sqrt(34.3333) == getEvaluator().getNumberResult("sqrt([pos=34])"));
}
	
@Test public void testSqrtWithVariable(){
  assertTrue(4 == getEvaluator().getNumberResult("sqrt([var=a])"));
  assertTrue(Math.sqrt(34.3333) == getEvaluator().getNumberResult("sqrt([var=c])"));	
}

@Test
public void testSqrtWithPointNumbers(){
  assertTrue(Math.sqrt(.2) == getEvaluator().getNumberResult("sqrt(.2)"));	
  assertTrue(Math.sqrt(.2) == getEvaluator().getNumberResult("sqrt(.1)"));	
}

@Test
public void testSqrtWithWrongInputNegativeNumber(){
  assertTrue("NaN".equals(getEvaluator().getResultAsEvaluatorString("sqrt(-2)")));	
  assertTrue("NaN".equals(getEvaluator().getResultAsEvaluatorString("sqrt(-1)")));	
}

@Test
public void testSqrtWithExpressions(){
  assertTrue(Math.sqrt(2) == getEvaluator().getNumberResult("sqrt(sqrt(4))"));
  assertTrue(Math.sqrt(Math.sqrt(2)) == getEvaluator().getNumberResult("sqrt(sqrt(sqrt(4)))"));
}
	
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testSqrtWithWrongInputCharacter(){
  getEvaluator().getNumberResult("sqrt(a)");
}
	
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testSqrtWithTwoArguments(){
  getEvaluator().getNumberResult("sqrt(4, 3)");
}
	
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testSqrtWithThreeArguments(){
  getEvaluator().getNumberResult("sqrt(2, 3, 4)");
}
	
@Test(expected=UndefinedExerciseVariableException.class)
public void testSqrtWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("sqrt('[var=j]')");
}
	
@Test(expected=UndefinedFillInVariableException.class)
public void testSqrtWithMissingInput(){
  getEvaluator().getNumberResult("sqrt('[pos=42]')");
}

Hinweise