1
0
mirror of https://github.com/octoleo/plantuml.git synced 2024-11-24 22:07:33 +00:00

Merge pull request #1673 from The-Lum/Random

feat: `Random` function: add test and private declaration
This commit is contained in:
PlantUML 2024-02-04 22:15:01 +01:00 committed by GitHub
commit c447e4489b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 51 additions and 1 deletions

View File

@ -57,7 +57,7 @@ public class RandomFunction extends SimpleReturnFunction {
return nbArg == 0 || nbArg == 1 || nbArg == 2; 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, public TValue executeReturnFunction(TContext context, TMemory memory, LineLocation location, List<TValue> values,
Map<String, TValue> named) throws EaterException, EaterExceptionLocated { Map<String, TValue> named) throws EaterException, EaterExceptionLocated {

View File

@ -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);
}
}