Come testare una funzionalità di generazione casuale nell'applicazione? [duplicare]

0

Una delle funzionalità da sviluppare nella nostra applicazione era quella di consentire all'utente di fare clic su un pulsante che sceglierà un elemento a caso di valori (normalmente 5-10) registrati nel database. La casualità non ha bisogno di essere sicura o scientificamente uniforme, ma abbiamo bisogno che sia in qualche modo imprevedibile e non influenzata in modo evidente da uno dei valori.

Qualche suggerimento su come scrivere un buon test unitario e test funzionale per questa funzione?

    
posta Louis Rhys 18.08.2012 - 04:40
fonte

1 risposta

0

Puoi usare lo stesso seme su 2 processi parallell e, se iniziano nello stesso intervallo temporale generale (in termini di processore GHz), avranno lo stesso seme esatto per il seme statico. O la maggior parte delle lingue se il seeding con lo stesso seme statico avrà la stessa generazione numerica (Java è un buon esempio RNG di questo stile API).

Per contrastare la prevedibilità statica intrinseca di ciò, gli RNG sono solitamente seminati con il tempo interno del sistema fino al secondo o secondo nanometro, dando un'imprevedibilità elevata a lungo termine e quasi impossibile da prevedere in base al tempo nel breve, poiché sono cicli di clock a cristalli interni che si alimentano fino all'API.

Per inciso: tutti i numeri generati dalle macchine saranno pseudo-casuali, ma abbastanza vicini per il lavoro del governo.

Per ottenere un intervallo numerico, basta prendere il modulo intero (integer_range_max) del valore RNG [0-1). Quindi RNG * Modulo% Modulo ti darà l'intervallo.

    
risposta data 18.08.2012 - 08:12
fonte

Leggi altre domande sui tag