Random: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 19: Zeile 19:
*keine
*keine


====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Test
public void testRandom(){
  for(int i=0;i<10000;i++){
    assertTrue(1 >  getEvaluator().getNumberResult("random()"));
    assertTrue(0 <= getEvaluator().getNumberResult("random()"));
  }
}
@Test
public void testRandomStatistically(){
  HashMap<Double, Integer> statistics = new HashMap<>();  //<'Random Number', 'Occurrences'>
  for (int i = 0; i < 10000; i++){
    double random = getEvaluator().getNumberResult("random()");
    if (statistics.containsKey(random)){
      statistics.put(random, statistics.get(random) +1);
    }else{
      statistics.put(random, 1);
    }
  }
 
  int max = 0;
  for (int value : statistics.values()){
    if(value > max){ max = value; }
  }
 
  assertTrue(2 >= max);  //max 2 same random numbers out of 10 000
  assertTrue(9990 < statistics.values().size()); //max 9 random numbers overlapping out of 10 000
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testRandomWithOneArgument(){
  getEvaluator().getNumberResult("random(4)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testRandomWithTwoArguments(){
  getEvaluator().getNumberResult("random(4, 5)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testRandomWithThreeArguments(){
  getEvaluator().getNumberResult("random(2, 4, 0.1)");
}
</syntaxhighlight>
=== Hinweise ===
=== Hinweise ===
* liefert niemals den Wert 1 zurück
* liefert niemals den Wert 1 zurück


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

Version vom 20. Juni 2017, 15:51 Uhr

Beschreibung

Die Funktion random liefert eine Pseudozufallszahl in Form einer Gleitkommazahl im Bereich von 0 (inklusiv) bis 1 (exklusiv) zurück. Die Funktion benötigt keine Parameter.

Syntax

random()

Parameter

  • keine

Return Value

  • Gibt eine Zufallszahl (double) zurück

Beispiele

Standardfälle

random()   --> 0.451236789
random()   --> 0.969492934

Benutzung mit Variablen

  • keine

JUnit Tests

@Test
public void testRandom(){	
  for(int i=0;i<10000;i++){
    assertTrue(1 >  getEvaluator().getNumberResult("random()"));
    assertTrue(0 <= getEvaluator().getNumberResult("random()"));
  }
}
	
@Test
public void testRandomStatistically(){
  HashMap<Double, Integer> statistics = new HashMap<>();  //<'Random Number', 'Occurrences'>
  for (int i = 0; i < 10000; i++){
    double random = getEvaluator().getNumberResult("random()");
    if (statistics.containsKey(random)){
      statistics.put(random, statistics.get(random) +1);
    }else{
      statistics.put(random, 1);
    }
  }
  
  int max = 0;
  for (int value : statistics.values()){
    if(value > max){ max = value; }
  }
  
  assertTrue(2 >= max);  							//max 2 same random numbers out of 10 000
  assertTrue(9990 < statistics.values().size()); //max 9 random numbers overlapping out of 10 000 
}
	
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testRandomWithOneArgument(){
  getEvaluator().getNumberResult("random(4)");
}
	
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testRandomWithTwoArguments(){
  getEvaluator().getNumberResult("random(4, 5)");
}
	
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testRandomWithThreeArguments(){
  getEvaluator().getNumberResult("random(2, 4, 0.1)");
}

Hinweise

  • liefert niemals den Wert 1 zurück