Min

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Beschreibung

Die Funktion min ermittelt den kleinsten Wert zweier Zahlen. Die Funktion erwartet zwei zu vergleichende Zahlen und gibt die kleinere Zahl zurück.

Syntax

min(float zahl1, float zahl2)

Parameter

  • zahl1 - der erste zu vergleichende Wert
  • zahl2 - der zweite zu vergleichende Wert

Return Value

  • Gibt die kleinere Zahl zurück

Beispiele

Standardfälle

min(12,3)   --> returns 3
min(9.568,100)   --> returns 9.568

Benutzung mit Variablen

min([pos=1],[pos=3])
min([var=a],[var=b])

JUnit Tests

[Anzeigen]

@Before
public void beforeTest(){
  placeExerciseVariable("a", OMParser.parse("1"));
  placeExerciseVariable("b", OMParser.parse("2"));
  placeExerciseVariable("c", OMParser.parse("-1"));

  placeFillInVariable(1, OMParser.parse("1"));
  placeFillInVariable(2, OMParser.parse("2"));
  placeFillInVariable(3, OMParser.parse("-1"));
}

@Test
public void testMin(){
  assertTrue(1 == getEvaluator().getNumberResult("min(1, 2)"));
  assertTrue(2 == getEvaluator().getNumberResult("min(3, 2)"));
  assertTrue(1 == getEvaluator().getNumberResult("min(1, 1)"));
  assertTrue(0 == getEvaluator().getNumberResult("min(0, 0)"));

  assertTrue(-2 == getEvaluator().getNumberResult("min(-2, 0)"));
  assertTrue(-2 == getEvaluator().getNumberResult("min(-2, 2)"));
}

@Test
public void testMinWithVariables(){
  assertTrue(1 == getEvaluator().getNumberResult("min([var=a], [var=b])"));
  assertTrue(-1 == getEvaluator().getNumberResult("min([var=a], [var=c])"));
}

@Test
public void testMinWithInput(){
  assertTrue(1 == getEvaluator().getNumberResult("min([pos=1], [pos=2])"));
  assertTrue(-1 == getEvaluator().getNumberResult("min([pos=1], [pos=3])"));
}

@Test
public void testMinWithExpressions(){
  assertTrue(-12 == getEvaluator().getNumberResult("min(min(-12,2), 4)"));
  assertTrue(-12 == getEvaluator().getNumberResult("min(min(-12,2), min(5, 8))"));
  assertTrue(-13 == getEvaluator().getNumberResult("min(min(-12,min(13,-13)), min(5, 8))"));
}

@Test
public void testMinWithPointNumbers(){
  assertTrue(1.0 == getEvaluator().getNumberResult("min(1.0, 1.3)"));
  assertTrue(.1 == getEvaluator().getNumberResult("min(.1, .4)"));
  assertTrue(.1111 == getEvaluator().getNumberResult("min(.1234, 0.1111)"));
}

@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testMinWithWrongInputCharacter(){
  getEvaluator().getNumberResult("min(a, a)");
}

@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testMinWithOneArgument(){
  getEvaluator().getNumberResult("min(2)");
}

@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testMinWithThreeArguments(){
  getEvaluator().getNumberResult("min(1, 23, 4)");
}

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

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

Hinweise

  • Eine Gleitkommazahl wird mit einem Punkt anstatt eines Komma gebildet