IsFraction: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 20: Zeile 20:
  isFraction('[var=a]')
  isFraction('[var=a]')


====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
public void beforeTest(){
  placeExerciseVariable("a",OMParser.parse("1/5"));
  placeExerciseVariable("b",OMParser.parse("10/2"));
  placeExerciseVariable("c",OMParser.parse("7/9"));
  placeExerciseVariable("d",OMParser.parse("6"));
  placeFillInVariable(1,OMParser.parse("1/5"));
  placeFillInVariable(2,OMParser.parse("10/2"));
  placeFillInVariable(3,OMParser.parse("7/9"));
  placeFillInVariable(4,OMParser.parse("6"));
}
@Test
public void testIsFraction(){
  assertTrue(getEvaluator().getBooleanResult("isFraction(1/3)"));
  assertTrue(getEvaluator().getBooleanResult("isFraction(7/10)"));
  assertTrue(getEvaluator().getBooleanResult("isFraction(90/65)"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction(1)"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction(10.76)"));
}
@Test
public void testIsFractionWithInput(){
  assertTrue(getEvaluator().getBooleanResult("isFraction([pos=1])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([pos=2])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([pos=3])"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction([pos=4])"));
}
@Test
public void testIsFractionWithVariables(){
  assertTrue(getEvaluator().getBooleanResult("isFraction([var=a])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([var=b])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([var=c])"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction([var=d])"));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testIsFractionWithWrongInputCharacter(){
  getEvaluator().getNumberResult("isFraction(a)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIsFractionWithTwoArguments(){
  getEvaluator().getNumberResult("isFraction(3/2 , 0)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIsFractionWithThreeArguments(){
getEvaluator().getNumberResult("isFraction(3/2, 1/3, 3/1)");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testIsFractionWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("isFraction('[var=j]')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testIsFractionWithMissingInput(){
getEvaluator().getNumberResult("isFraction('[pos=42]')");
}
</syntaxhighlight>
=== Hinweise ===
=== Hinweise ===
* Auch wenn sich jede rationale Zahl natürlich als Bruch darstellen lässt, wird bei dieser Funktion explizit der Aufbau des Strings überprüft.
* Auch wenn sich jede rationale Zahl natürlich als Bruch darstellen lässt, wird bei dieser Funktion explizit der Aufbau des Strings überprüft.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Evaluatorfunktion]]

Version vom 20. Juni 2017, 15:27 Uhr

Beschreibung

Die Funktion isFraction prüft, ob es sich bei einem String bezüglich des Aufbaus um einen Bruch handelt. Die Funktion erwartet einen String, der darauf geprüft wird, ob er wie ein Bruch aufgebaut ist, und gibt einen Boolean zurück.

Syntax

isFraction(String zeichenkette)

Parameter

  • zeichenkette - der zu prüfende String

Return Value

  • Gibt einen Boolean zurück

Beispiele

Standardfälle

isFraction('7/9')   --> returns true
isFraction('10.76')   --> returns false

Benutzung von Variablen

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

JUnit Tests

@Before
public void beforeTest(){
  placeExerciseVariable("a",OMParser.parse("1/5"));
  placeExerciseVariable("b",OMParser.parse("10/2"));
  placeExerciseVariable("c",OMParser.parse("7/9"));
  placeExerciseVariable("d",OMParser.parse("6"));
		
  placeFillInVariable(1,OMParser.parse("1/5"));
  placeFillInVariable(2,OMParser.parse("10/2"));
  placeFillInVariable(3,OMParser.parse("7/9"));
  placeFillInVariable(4,OMParser.parse("6"));
}

@Test
public void testIsFraction(){
  assertTrue(getEvaluator().getBooleanResult("isFraction(1/3)"));
  assertTrue(getEvaluator().getBooleanResult("isFraction(7/10)"));
  assertTrue(getEvaluator().getBooleanResult("isFraction(90/65)"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction(1)"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction(10.76)"));
}

@Test
public void testIsFractionWithInput(){		
  assertTrue(getEvaluator().getBooleanResult("isFraction([pos=1])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([pos=2])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([pos=3])"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction([pos=4])"));
}

@Test
public void testIsFractionWithVariables(){		
  assertTrue(getEvaluator().getBooleanResult("isFraction([var=a])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([var=b])"));
  assertTrue(getEvaluator().getBooleanResult("isFraction([var=c])"));
  assertTrue(!getEvaluator().getBooleanResult("isFraction([var=d])"));
}

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

@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIsFractionWithTwoArguments(){
  getEvaluator().getNumberResult("isFraction(3/2 , 0)");
}

@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIsFractionWithThreeArguments(){
		getEvaluator().getNumberResult("isFraction(3/2, 1/3, 3/1)");
}

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

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

Hinweise

  • Auch wenn sich jede rationale Zahl natürlich als Bruch darstellen lässt, wird bei dieser Funktion explizit der Aufbau des Strings überprüft.