2015-03-23 1 views
1
#Tests the class Hashtabell in the file hashfil.py 
from hashfil import Hashtabell 
import unittest 

class Test(): 

    def setUp(self): 
      self.atomlista = [] 
      data = "H 1.00794;\ 
      He 4.002602;\ 
      Li 6.941;\ 
      Be 9.012182;\ 
      B 10.811;\ 
      C 12.0107;\ 
      N 14.0067;\ 
      O 15.9994;\ 
      F 18.9984032;\ 
      Ne 20.1797;\ 
      Na 22.98976928;\ 
      Mg 24.3050;\ 
      Al 26.9815386;\ 
      Si 28.0855;\ 
      P 30.973762;\ 
      S 32.065;\ 
      Cl 35.453;\ 
      K 39.0983;\ 
      Ar 39.948;\ 
      Ca 40.078;\ 
      Sc 44.955912;\ 
      Ti 47.867;\ 
      V 50.9415;\ 
      Cr 51.9961;\ 
      Mn 54.938045;\ 
      Fe 55.845;\ 
      Ni 58.6934;\ 
      Co 58.933195;\ 
      Cu 63.546;\ 
      Zn 65.38;\ 
      Ga 69.723;\ 
      Ge 72.64;\ 
      As 74.92160;\ 
      Se 78.96;\ 
      Br 79.904;\ 
      Kr 83.798;\ 
      Rb 85.4678;\ 
      Sr 87.62;\ 
      Y 88.90585;\ 
      Zr 91.224;\ 
      Nb 92.90638;\ 
      Mo 95.96;\ 
      Tc 98;\ 
      Ru 101.07;\ 
      Rh 102.90550;\ 
      Pd 106.42;\ 
      Ag 107.8682;\ 
      Cd 112.411;\ 
      In 114.818;\ 
      Sn 118.710;\ 
      Sb 121.760;\ 
      I 126.90447;\ 
      Te 127.60;\ 
      Xe 131.293;\ 
      Cs 132.9054519;\ 
      Ba 137.327;\ 
      La 138.90547;\ 
      Ce 140.116;\ 
      Pr 140.90765;\ 
      Nd 144.242;\ 
      Pm 145;\ 
      Sm 150.36;\ 
      Eu 151.964;\ 
      Gd 157.25;\ 
      Tb 158.92535;\ 
      Dy 162.500;\ 
      Ho 164.93032;\ 
      Er 167.259;\ 
      Tm 168.93421;\ 
      Yb 173.054;\ 
      Lu 174.9668;\ 
      Hf 178.49;\ 
      Ta 180.94788;\ 
      W 183.84;\ 
      Re 186.207;\ 
      Os 190.23;\ 
      Ir 192.217;\ 
      Pt 195.084;\ 
      Au 196.966569;\ 
      Hg 200.59;\ 
      Tl 204.3833;\ 
      Pb 207.2;\ 
      Bi 208.98040;\ 
      Po 209;\ 
      At 210;\ 
      Rn 222;\ 
      Fr 223;\ 
      Ra 226;\ 
      Ac 227;\ 
      Pa 231.03588;\ 
      Th 232.03806;\ 
      Np 237;\ 
      U 238.02891;\ 
      Am 243;\ 
      Pu 244;\ 
      Cm 247;\ 
      Bk 247;\ 
      Cf 251;\ 
      Es 252;\ 
      Fm 257;\ 
      Md 258;\ 
      No 259;\ 
      Lr 262;\ 
      Rf 265;\ 
      Db 268;\ 
      Hs 270;\ 
      Sg 271;\ 
      Bh 272;\ 
      Mt 276;\ 
      Rg 280;\ 
      Ds 281;\ 
      Cn 285" 
      self.atomlista = data.split(";") 
      antalElement = len(self.atomlista) 
      hashtabell = Hashtabell(antalElement) 
      for element in self.atomlista: 
      namn, vikt = element.split() 
      nyAtom = Atom(namn, float(vikt)) 
      hashtabell.put(namn, nyAtom) 
      self.hashtabell = hashtabell 


    def allaAtomerFinns(self): 
     """Tests if you can find all atoms in the hashtable""" 
     antal = 0 
     OK = True 
     print("\n-------------------------------------------------------") 
     print(" * Testar att hitta alla atomer i hashtabellen...") 
     for kontrollAtom in self.atomlista: 
      namn, vikt = kontrollAtom.split() 
      hashadAtom = hashtabell.get(namn) 

     self.assertEqual(hashadAtom.vikt,vikt) 

if __name__ == '__main__': 
    unittest.main() 

Alors j'essaie de lancer un test unitaire, et voici à quelle distance je l'ai. Malheureusement, j'obtiens cette erreur:TabError sans raison apparente en python

TabError: inconsistent use of tabs and spaces in indentation 
n160-p132:A SahandZarrinkoub$ python3 unittest.py 
    File "unittest.py", line 121 
    self.atomlista = data.split(";") 

et je n'arrive pas à comprendre pourquoi. J'ai vérifié tous les onglets, espaces, etc. dans le document.

Reconnaissant pour toute aide.

Sahand

Répondre

0

Je trouve que j'avais en fait des entailles dans mon code qui comporte des espaces plutôt que des onglets. Mon éditeur avait une fonction pour trouver ces groupes d'espaces et les remplacer par des onglets, ce qui a résolu le problème.