Random: Unterschied zwischen den Versionen
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