Necesito escribir algunas pruebas junit en el código Java que llama al Math.random()
. Sé que puedo establecer la semilla si estaba instanciando mi propio objeto aleatorio para producir resultados repetibles. ¿Hay alguna manera de hacer esto también para Math.random()
?Establecer semilla en Math.random()
Respuesta
El método Math.random()
utiliza un campo estático privado:
private static Random randomNumberGenerator;
Si realmente necesita fijar a un new Random(CONSTANT_SEED)
(por ejemplo, usted necesita el código de prueba JUnit que no tiene control sobre) se podría hacerlo usando reflection.
¿Qué le parece crear una instancia de Random
y usar eso en su lugar? Math.random()
crea uno y lo usa, así que no creo que puedas meterse con su semilla. Sin embargo, si creas un Random
y lo usas directamente, puedes establecer la semilla para eso cuando lo crees, y/o puedes llamar al setSeed()
más tarde.
Conjunto con instancia de azar con su semilla o simplemente extender los métodos a los valores que necesita
Field field = Math.class.getDeclaredField("randomNumberGenerator");
field.setAccessible(true);
field.set(null, new Random() {
@Override
public double nextDouble() {
return 1;
}
});
¡La versión canónica de random debe devolver 4! –
- 1. Establecer semilla aleatoria temporalmente, como "new Random()"
- 2. Math.random() explicó
- 3. Establecer una semilla para mezclar ArrayList en Java deterministicamente
- 4. Código EF Primero: cómo establecer la identidad de la semilla?
- 5. ¿Math.random() es criptográficamente seguro?
- 6. Math.random() versus Random.nextInt (int)
- 7. precisión de Math.random()
- 8. Explique Math.floor (Math.random())
- 9. JS: Math.random para la matriz
- 10. Math.floor (Math.random()) ¿Qué hace +1 en realidad?
- 11. SecureRandom semilla segura en Java
- 12. ¿Por qué debería combinar Math.floor con Math.random?
- 13. C++ de nuevo Random (semilla) en C#
- 14. de números aleatorios con semilla
- 15. Cómo establecer la semilla para simulaciones aleatorias con los paquetes foreach y doMC?
- 16. Cambiar la semilla de identidad en SQL Server (¡permanentemente!)
- 17. ¿Cómo se logra la aleatoriedad con Math.random en javascript?
- 18. Mejor semilla para el proceso paralelo
- 19. db: semilla no cargando los modelos
- 20. Secuencia al azar Python con semilla
- 21. Java Números aleatorios usando una semilla
- 22. ¿Qué es el parámetro de semilla MurmurHash3?
- 23. Datos de semilla para análisis de sentimiento
- 24. rand cambia de valor sin cambiar semilla
- 25. Configuración del aumento de semilla :: aleatorio
- 26. ¿Por qué el JDK tiene Math.random() y la clase Random?
- 27. ¿Cómo se usa math.random para generar enteros aleatorios?
- 28. Rieles forma de restablecer la semilla en el campo id
- 29. conexión rechazada - connect (2) con rake db: semilla en MongoDB
- 30. Cómo restablecer la semilla de identidad en SQL Azure
Cómo es posible elaborar en la parte reflejo de su respuesta por favor regrese? –