TAMERE

 avatar
unknown
plain_text
2 years ago
3.1 kB
10
Indexable
def is_correct(PRNG):
    test = True
    if True:
        for seed in range(100):

#vérifie si tous les chiffres demandés apparaissent au moins une fois
                l = []
                ok= []
                ok1 = []
                long = 10
                p = PRNG(seed, long)
                for i in range (1000):
                    l.append(p.next_int())
                for i in range (long):
                    ok.append(False)
                for i in range (long):
                    ok1.append(True)
                for i in range (len(l)):
                    a = l[i]
                    if a < long and a >= 0: 
                        ok[a] = True
                       
                if ok != ok1:
                    test = False

#Test s'il n'y a pas de nombre hors de l'intervalle
                for i in l:
                   if i >= long or i < 0:
                      test = False
                    
                
                    
                    
                    
                    
#Test si avec deux seed différentes le résultat est bien différent
                p1 = PRNG(seed+1, long)
                l1 = []
                for i in range (1000):
                    l1.append(p1.next_int())
                if l1 == l:
                    test = False
                

#Test si avec la même seed le résultat est bien le même
                p2 = PRNG(seed, long)
                l2 = []
                for i in range (1000):
                    l2.append(p2.next_int())
                if l2 != l:
                    test = False

#vérifie s'il n'y a pas une séquence répétitive 
                test3 = False
                for i in range (len(l)):
                    if i == 0:
                        pass
                    elif l[i] == l[0]:
                        try:
                            for j in range (25):
                                if not l[i+j] == l[j]:
                                    test3 = True
                            if test3 == False:
                                test = False
                        except:
                            pass
#vérifie s'il n'y a pas de suit arithmétique                      
                l3 = []
                for i in range (len(l)-1):

                    a = l[i+1] - l[i]
                    l3.append(a)

                for nbr in range (len(l3)-1):
                    l3[nbr] -= l3[nbr+1]
                if l3 == 0:
                    test = False
                    
                    
#vérifie s'il n'y a pas de suite géométrique                
                l4 = []
                for i in range (len(l)-1):
                    if l[i] == 0:
                        break
                        
                    b = l[i+1] / l[i]
                    l4.append(b)
                for nbr in range (len(l4)-1):
                    l4[nbr] -= l4[nbr+1]
                if l4 == 0:
                    test = False
    return test