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. precisión de Math.random()
- 7. Math.random() versus Random.nextInt (int)
- 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. Mejor semilla para el proceso paralelo
- 18. db: semilla no cargando los modelos
- 19. Secuencia al azar Python con semilla
- 20. Java Números aleatorios usando una semilla
- 21. Datos de semilla para análisis de sentimiento
- 22. Configuración del aumento de semilla :: aleatorio
- 23. rand cambia de valor sin cambiar semilla
- 24. ¿Qué es el parámetro de semilla MurmurHash3?
- 25. ¿Por qué el JDK tiene Math.random() y la clase Random?
- 26. ¿Cómo se usa math.random para generar enteros aleatorios?
- 27. Rieles forma de restablecer la semilla en el campo id
- 28. Cómo restablecer la semilla de identidad en SQL Azure
- 29. ¿Cómo obtengo la semilla de un Random en Java?
- 30. conexión rechazada - connect (2) con rake db: semilla en MongoDB
Cómo es posible elaborar en la parte reflejo de su respuesta por favor regrese? –