5 class Test1( unittest.TestCase ):
7 d = dicoparser.DicoParser( '', '', '' )
8 t = d.parse_tokens( """
14 NOM = 'CONTROLE DES LIMITES'
15 RUBRIQUE1 = 'ENTREES-SORTIES, GENERALITES';'CONTROLE'
16 CHOIX1 = '0="list of tests"';
17 '1="gradient simple"';
19 '3="Lagrange interp."'
20 AIDE = 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME
21 S''ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES'
22 DEFAUT = -1000.;9000.;-1000.
24 self.assertEqual( len(t), 39 )
25 self.assertEqual( t[0], 'TYPE' )
26 self.assertEqual( t[1], '=' )
27 self.assertEqual( t[2], 'LOGIQUE' )
28 self.assertEqual( t[3], 'INDEX' )
29 self.assertEqual( t[4], '=' )
30 self.assertEqual( t[5], '23' )
31 self.assertEqual( t[6], 'MNEMO' )
32 self.assertEqual( t[7], '=' )
33 self.assertEqual( t[8], 'VERLIM' )
34 self.assertEqual( t[9], 'MNEMO1' )
35 self.assertEqual( t[10], '=' )
36 self.assertEqual( t[11], '' )
37 self.assertEqual( t[12], 'NOM' )
38 self.assertEqual( t[13], '=' )
39 self.assertEqual( t[14], 'CONTROLE DES LIMITES' )
40 self.assertEqual( t[15], 'RUBRIQUE1' )
41 self.assertEqual( t[16], '=' )
42 self.assertEqual( t[17], 'ENTREES-SORTIES, GENERALITES' )
43 self.assertEqual( t[18], ';' )
44 self.assertEqual( t[19], 'CONTROLE' )
45 self.assertEqual( t[20], 'CHOIX1' )
46 self.assertEqual( t[21], '=' )
47 self.assertEqual( t[22], '0="list of tests"' )
48 self.assertEqual( t[23], ';' )
49 self.assertEqual( t[24], '1="gradient simple"' )
50 self.assertEqual( t[25], ';' )
51 self.assertEqual( t[26], '2="conj gradient"' )
52 self.assertEqual( t[27], ';' )
53 self.assertEqual( t[28], '3="Lagrange interp."' )
54 self.assertEqual( t[29], 'AIDE' )
55 self.assertEqual( t[30], '=' )
56 self.assertEqual( t[31], 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME S\'ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES' )
57 self.assertEqual( t[32], 'DEFAUT' )
58 self.assertEqual( t[33], '=' )
59 self.assertEqual( t[34], '-1000.' )
60 self.assertEqual( t[35], ';' )
61 self.assertEqual( t[36], '9000.' )
62 self.assertEqual( t[37], ';' )
63 self.assertEqual( t[38], '-1000.' )
66 self.assertEqual( t[24], ( '1', 'gradient simple' ) )
67 self.assertEqual( t[26], ( '2', 'conj gradient' ) )
68 self.assertEqual( t[28], ( '3', 'Lagrange interp.' ) )
70 lst = d.convert_to_tuples( t )
71 self.assertEqual( len(lst), 9 )
72 self.assertEqual( lst[0], ( 'TYPE', 'LOGIQUE' ) )
73 self.assertEqual( lst[1], ( 'INDEX', '23' ) )
74 self.assertEqual( lst[2], ( 'MNEMO', 'VERLIM' ) )
75 self.assertEqual( lst[3], ( 'MNEMO1', '' ) )
76 self.assertEqual( lst[4], ( 'NOM', 'CONTROLE DES LIMITES' ) )
77 self.assertEqual( lst[5], ( 'RUBRIQUE1', ['ENTREES-SORTIES, GENERALITES', 'CONTROLE'] ) )
78 self.assertEqual( lst[6], ( 'CHOIX1', [('0','list of tests'), ('1','gradient simple'), ('2','conj gradient'), ('3','Lagrange interp.') ] ) )
79 self.assertEqual( lst[7], ( 'AIDE', 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME S\'ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES' ) )
80 self.assertEqual( lst[8], ( 'DEFAUT', ['-1000.', '9000.', '-1000.' ] ) )
82 class Test2( unittest.TestCase ):
84 d = dicoparser.DicoParser( '', '', '' )
85 self.assertEqual( d.are_equal( 'WIND IN SUMMER', 'Wind_In_Summer' ), True )
86 self.assertEqual( d.are_equal( 'HELLO', 'Bonjour' ), False )
87 self.assertEqual( d.are_equal( 'MAXIMUM NUMBER OF ITERATIONS FOR SOLVER', 'Maximum_Number_Of_Iterations_For_Solver' ), True )
88 #self.assertEqual( d.are_equal( 'WIND IN SUMMER', 'Wind' ), True ) #TODO: check the specification about this issue
90 class Test3( unittest.TestCase ):
92 d = dicoparser.DicoParser( 'test', 'NOM', 'NOM1' )
94 #for aKey, aValue in d.data['TYPE OF ADVECTION'].iteritems():
97 self.assertEqual( d.data['TYPE OF ADVECTION'].keys(), ['AIDE', 'NOM', 'DEFAUT1', 'INDEX', 'NIVEAU', 'TAILLE', 'CHOIX1', 'RUBRIQUE1', 'MNEMO', 'NOM1', 'AIDE1', 'COMPORT', 'DEFAUT', 'CHOIX', 'RUBRIQUE', 'TYPE' ] )
98 self.assertEqual( d.translate( 'Control_Of_Limits', 'NOM' ), 'Controle Des Limites' )
99 self.assertEqual( d.translate( 'Type_Of_Advection', 'NOM' ), 'Forme De La Convection' )
100 self.assertEqual( d.translate( 'Type_Of_Advection', '', 'Characteristics', 'CHOIX1', 'CHOIX' ), 'Caracteristiques' )
102 class Test4( unittest.TestCase ):
104 d = dicoparser.DicoParser( 'telemac2dv6p3.dico', 'NOM', 'NOM1' )
105 self.assertEqual( d.translate( 'Reference_File_Format', 'NOM' ), 'Format Du Fichier De Reference' )
106 self.assertEqual( d.translate( 'Reference_File_Format', '', 'Serafin', 'CHOIX1', 'CHOIX' ), 'Serafin' )
107 self.assertEqual( d.translate( 'Reference_File_Format', '', 'Serafin', 'DEFAUT1', 'DEFAUT' ), 'Serafin' )
108 self.assertEqual( d.translate( 'Destination', '', 'CHE43A', 'DEFAUT1', 'DEFAUT' ), 'Che43a' )
109 self.assertEqual( d.translate( 'Destination', '', 0.0, 'DEFAUT1', 'DEFAUT' ), '' )
110 self.assertEqual( d.translate( 'Destination', '', (1,2,3), 'DEFAUT1', 'DEFAUT' ), '' )
112 class Test5( unittest.TestCase ):
114 d = dicoparser.DicoParser( '', '', '' )
115 t = d.parse_tokens( """
116 CHOIX = '" "="pas de biliotheque"';
117 '"$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a"="bibliotheque PVM1"'
119 self.assertEqual( len(t), 5 )
120 self.assertEqual( t[0], 'CHOIX' )
121 self.assertEqual( t[1], '=' )
122 self.assertEqual( t[2], '" "="pas de biliotheque"' )
123 self.assertEqual( t[3], ';' )
124 self.assertEqual( t[4], '"$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a"="bibliotheque PVM1"' )