mirror of
https://github.com/octoleo/plantuml.git
synced 2024-11-22 04:55:10 +00:00
feat: Random
function: add test and private declaration
Add:
- `RandomFunctionTest` test file
- private declaration for random lib.
Ref.:
- #1667
Improve:
- dbaf8ac2cd
- #1668
This commit is contained in:
parent
80acb87fbb
commit
3bd3edb740
@ -57,7 +57,7 @@ public class RandomFunction extends SimpleReturnFunction {
|
||||
return nbArg == 0 || nbArg == 1 || nbArg == 2;
|
||||
}
|
||||
|
||||
final Random random = new Random();
|
||||
private final Random random = new Random();
|
||||
|
||||
public TValue executeReturnFunction(TContext context, TMemory memory, LineLocation location, List<TValue> values,
|
||||
Map<String, TValue> named) throws EaterException, EaterExceptionLocated {
|
||||
|
@ -0,0 +1,50 @@
|
||||
package net.sourceforge.plantuml.tim.stdlib;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.jupiter.api.DisplayNameGenerator.ReplaceUnderscores;
|
||||
import org.junit.jupiter.api.IndicativeSentencesGeneration;
|
||||
import org.junit.jupiter.api.RepeatedTest;
|
||||
|
||||
import net.sourceforge.plantuml.tim.EaterException;
|
||||
import net.sourceforge.plantuml.tim.EaterExceptionLocated;
|
||||
import net.sourceforge.plantuml.tim.TFunction;
|
||||
import net.sourceforge.plantuml.tim.expression.TValue;
|
||||
|
||||
/**
|
||||
* Tests the builtin function.
|
||||
*/
|
||||
@IndicativeSentencesGeneration(separator = ": ", generator = ReplaceUnderscores.class)
|
||||
|
||||
class RandomFunctionTest {
|
||||
TFunction cut = new RandomFunction();
|
||||
final String cutName = "Random";
|
||||
final String repetitionLabel = "[{currentRepetition}/{totalRepetitions}] ";
|
||||
|
||||
@RepeatedTest(value = 10, name = repetitionLabel + cutName + "()")
|
||||
void test_with_no_argument() throws EaterException, EaterExceptionLocated {
|
||||
final TValue tValue = cut.executeReturnFunction(null, null, null, Collections.emptyList(), null);
|
||||
assertThat(tValue.toInt()).isIn(0, 1);
|
||||
}
|
||||
|
||||
@RepeatedTest(value = 10, name = repetitionLabel + cutName + "(7)")
|
||||
void test_with_one_argument() throws EaterException, EaterExceptionLocated {
|
||||
final TValue tValue = cut.executeReturnFunction(null, null, null, Arrays.asList(TValue.fromInt(7)), null);
|
||||
assertThat(tValue.toInt()).isBetween(0, 7-1);
|
||||
}
|
||||
|
||||
@RepeatedTest(value = 10, name = repetitionLabel + cutName + "(0, 7)")
|
||||
void test_with_two_argument_first_zero() throws EaterException, EaterExceptionLocated {
|
||||
final TValue tValue = cut.executeReturnFunction(null, null, null, Arrays.asList(TValue.fromInt(0), TValue.fromInt(7)), null);
|
||||
assertThat(tValue.toInt()).isBetween(0, 7-1);
|
||||
}
|
||||
|
||||
@RepeatedTest(value = 10, name = repetitionLabel + cutName + "(3, 7)")
|
||||
void test_with_two_argument() throws EaterException, EaterExceptionLocated {
|
||||
final TValue tValue = cut.executeReturnFunction(null, null, null, Arrays.asList(TValue.fromInt(3), TValue.fromInt(7)), null);
|
||||
assertThat(tValue.toInt()).isBetween(3, 7-1);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user