Package medite :: Package MediteAppli :: Package test :: Module test_synthetic
[hide private]
[frames] | no frames]

Source Code for Module medite.MediteAppli.test.test_synthetic

  1  # -*- coding: iso-8859-1 -*- 
  2  # Copyright 20003 - 2008: Julien Bourdaillet (julien.bourdaillet@lip6.fr), Jean-Gabriel Ganascia (jean-gabriel.ganascia@lip6.fr) 
  3  # This file is part of MEDITE. 
  4  # 
  5  #    MEDITE is free software; you can redistribute it and/or modify 
  6  #    it under the terms of the GNU General Public License as published by 
  7  #    the Free Software Foundation; either version 2 of the License, or 
  8  #    (at your option) any later version. 
  9  # 
 10  #    MEDITE is distributed in the hope that it will be useful, 
 11  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13  #    GNU General Public License for more details. 
 14  # 
 15  #    You should have received a copy of the GNU General Public License 
 16  #    along with Foobar; if not, write to the Free Software 
 17  #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
 18   
 19  import unittest, contract 
 20  #from test import test_support 
 21  import MediteAppli.synthetic, test_data 
 22  import Donnees.resultatAppli  
 23  import numpy.oldnumeric as Numeric 
 24  #import scipy 
 25  # vérification des contrats 
 26  contract.checkmod(MediteAppli.synthetic) 
 27  contract.checkmod(Donnees.resultatAppli) 
 28   
 29   
30 -class Test_Synthetic(unittest.TestCase):
31 - def setUp(self):
35
36 - def test_etiquetage(self):
37 self.lTokenTag = self.taggerExtension.etiquetage() 38 self.assertNotEqual(len(self.lTokenTag),0) 39 for (token,tag) in self.lTokenTag: 40 self.assert_(isinstance(token,str)) 41 self.assert_(isinstance(tag,str)) 42 self.assertNotEqual(len(token),0) 43 self.assertNotEqual(len(tag),0) 44 self.assert_(tag in self.tm.getListe(), "tag "+tag+" unknown pour le token "+token) # le tag doit faire partie de la liste des tags
45
46 - def test_extractLTokenPos(self):
47 lTokenPos = self.taggerExtension.extractLTokenPos_() 48 self.assertNotEqual(len(lTokenPos),0) 49 lgSource=self.taggerExtension.resultatMedite.getLgSource() 50 texte=self.taggerExtension.resultatMedite.getTextesConcatenes() 51 lgTotal=len(texte) 52 for (token,pos) in lTokenPos: 53 self.assert_(isinstance(token,str)) 54 self.assert_(isinstance(pos,int)) 55 self.assert_(0<=pos<lgTotal) 56 fin = pos+len(token) 57 self.assertEqual(token,texte[pos:fin]) 58 self.assert_((0<=pos<lgSource and 0<=fin<=lgSource) or 59 (lgSource<=pos<lgTotal and lgSource<=fin<=lgTotal), 60 "debut="+str(pos)+" fin="+str(fin)+" / "+texte[pos:fin]+" / lgSource="+str(lgSource)+" lgTotal="+str(lgTotal))
61
62 - def test_alignement(self):
63 self.lTokenDebTokenFinTag = self.taggerExtension.alignement() 64 self.assertNotEqual(len(self.lTokenDebTokenFinTag),0) 65 lgSource=self.taggerExtension.resultatMedite.getLgSource() 66 texte=self.taggerExtension.resultatMedite.getTextesConcatenes() 67 lgTotal=len(texte) 68 for (debut,fin,tag) in self.lTokenDebTokenFinTag: 69 self.assert_(isinstance(debut,int)) 70 self.assert_(isinstance(fin,int)) 71 self.assert_(isinstance(tag,str)) 72 self.assert_((0<=debut<lgSource and 0<=fin<=lgSource) or 73 (lgSource<=debut<lgTotal and lgSource<=fin<=lgTotal), 74 "debut="+str(debut)+" fin="+str(fin)+" / "+texte[debut:fin]+" / lgSource="+str(lgSource)+" lgTotal="+str(lgTotal))
75
76 - def test_post_traitement_alignement(self):
77 self.dicoPosTag = self.taggerExtension.post_traitement_alignement(self.taggerExtension.alignement()) 78 self.assert_(len(self.dicoPosTag)>0) 79 lgTotal=len(self.taggerExtension.resultatMedite.getTextesConcatenes()) 80 for debut in self.dicoPosTag: 81 (fin,tag) = self.dicoPosTag[debut] 82 self.assert_(0<=debut<=fin<=lgTotal) 83 self.assert_(tag in self.tm.getListe())
84
85 - def test_calcul_frequences(self):
86 la = self.taggerExtension.alignement() 87 da = self.taggerExtension.post_traitement_alignement(la) 88 self.fm = self.taggerExtension.calcul_frequences(la,da) 89 self.assert_(isinstance(self.fm, MediteAppli.synthetic.TagFrequencyMatrix)) 90 # le nb de BC doit être égal pout T1 et T 91 self.assert_(sum(self.fm.freqGeneticModifs[6]) == sum(self.fm.freqGeneticModifs[7])) #
92
94 pass
95
96 -class Test_SyntheticRamuz(Test_Synthetic):
97 - def setUp(self):
101 -class Test_SyntheticAlthusser(Test_Synthetic):
102 - def setUp(self):
106 -class Test_SyntheticCharroi(Test_Synthetic):
107 - def setUp(self):
111
112 -class Test_SyntheticAragon(Test_Synthetic):
113 - def setUp(self):
117
118 -class Test_FrequencyMatrix(unittest.TestCase):
119 - def test_fm(self):
120 fm = MediteAppli.synthetic.FrequencyMatrix(5,2) 121 self.assertEqual(fm.getNbLine(),5) 122 self.assertEqual(fm.getNbColumn(),2)
123 124
125 -class Test_TagFrequencyMatrix(unittest.TestCase):
126 - def setUp(self):
129 - def get_fm(self):
130 l = self.tm.getNbItems() 131 freqGeneticModifs = Numeric.array( 132 [[0 for i in xrange(l)], 133 [1 for i in xrange(l)], 134 [2 for i in xrange(l)], 135 [3 for i in xrange(l)], 136 [4 for i in xrange(l)], 137 [5 for i in xrange(l)]]) 138 freqTexts = Numeric.array( 139 [[6 for i in xrange(l)], 140 [7 for i in xrange(l)]]) 141 fm = MediteAppli.synthetic.TagFrequencyMatrix(freqGeneticModifs,freqTexts) 142 fm.setRelation([0,2,4],0) 143 fm.setRelation([1,3,5],1) 144 return fm
145 - def test_fm(self):
146 fm = self.get_fm() 147 self.assertEqual(fm.getRelation(0),0) 148 self.assertEqual(fm.getRelation(2),0) 149 self.assertEqual(fm.getRelation(4),0) 150 self.assertEqual(fm.getRelation(1),1) 151 self.assertEqual(fm.getRelation(3),1) 152 self.assertEqual(fm.getRelation(5),1) 153 154 for x in fm.getFreqLine(0): self.assertEqual(x,0) 155 for x in fm.getFreqLine(self.potm.posToItem(0)): self.assertEqual(x,0) 156 for x in fm.getFreqLine(5): self.assertEqual(x,5) 157 for x in fm.getFreqLine(self.potm.posToItem(5)): self.assertEqual(x,5) 158 159 self.assertEqual(fm.getFreqColumn(0),[0,1,2,3,4,5]) 160 self.assertEqual(fm.getFreqColumn(5),[0,1,2,3,4,5])
161
162 -class Test_TagFrequencyMatrix2(Test_TagFrequencyMatrix):
163 - def test_fm2(self):
164 fm = self.get_fm() 165 fm2 = MediteAppli.synthetic.TagFrequencyMatrix2(fm) 166 for i in xrange(fm.getNbColumn()): 167 self.assert_(fm2.getFreqLine(0)[i]==fm.getFreqLine(0)[i]+fm.getFreqLine(2)[i]) 168 self.assert_(fm2.getFreqLine(1)[i]==fm.getFreqLine(1)[i]+fm.getFreqLine(3)[i]) 169 self.assert_(fm2.getFreqLine(2)[i]==fm.getFreqLine(4)[i]) 170 self.assert_(fm2.getFreqLine(3)[i]==fm.getFreqLine(5)[i]) 171 self.assert_(fm2.getFreqLine(4)[i]==fm.getFreqLine(6)[i]) 172 self.assert_(fm2.getFreqLine(5)[i]==fm.getFreqLine(7)[i])
173
174 -class Test_BiBlocList(unittest.TestCase):
175 - def test_constructor(self):
176 ds = test_data.Data_Synthetic() 177 p = Donnees.planTravail.PlanTravail('pAuteur', 'pOeuvre', 178 'pVS', 'pFS', 'pVC', 'pFC', Donnees.planTravail.Parametres()) 179 biBlocList = MediteAppli.synthetic.BiBlocList(ds.jeu_essai_Althusser(),p) 180 ###biBlocList = MediteAppli.synthetic.BiBlocList(ds.jeu_essai_Althusser2(),p) 181 biBlocList = MediteAppli.synthetic.BiBlocList(ds.jeu_essai_Althusser3(),p) 182 biBlocList = MediteAppli.synthetic.BiBlocListWD(ds.jeu_essai_Ramuz(),p) 183 biBlocList = MediteAppli.synthetic.BiBlocListWD(ds.jeu_essai_Charroi(),p) 184 ###biBlocList = MediteAppli.synthetic.BiBlocList(ds.jeu_essai_CB(),p) 185 biBlocList = MediteAppli.synthetic.BiBlocListWD(ds.jeu_essai_Python(),p) 186 biBlocList = MediteAppli.synthetic.BiBlocListWD(ds.jeu_essai_Condorcet(),p) 187 res = biBlocList.toResultat() 188 biBlocList.print_html() 189 biBlocList.evaluation()
190
191 - def test_decoreDep(self):
192 ds = test_data.Data_Synthetic() 193 p = Donnees.planTravail.PlanTravail('pAuteur', 'pOeuvre', 194 'pVS', 'pFS', 'pVC', 'pFC', Donnees.planTravail.Parametres()) 195 biBlocList1 = MediteAppli.synthetic.BiBlocListWD(ds.jeu_essai_Python(),p,1) 196 res1 = biBlocList1.toResultat() 197 #biBlocList.print_html() 198 #biBlocList.evaluation() 199 biBlocList2 = MediteAppli.synthetic.BiBlocListWD(ds.jeu_essai_Python(),p,2) 200 res2 = biBlocList2.toResultat() 201 print res1 ^ res2
202
203 -def suite():
204 suite1 = unittest.TestSuite() 205 suite1.addTest(Test_SyntheticRamuz("test_etiquetage")) 206 suite1.addTest(Test_SyntheticRamuz("test_extractLTokenPos")) 207 suite1.addTest(Test_SyntheticRamuz("test_alignement")) 208 suite1.addTest(Test_SyntheticRamuz("test_post_traitement_alignement")) 209 suite1.addTest(Test_SyntheticRamuz("test_calcul_frequences")) 210 suite2 = unittest.TestSuite() 211 suite2.addTest(Test_SyntheticAlthusser("test_etiquetage")) 212 suite2.addTest(Test_SyntheticAlthusser("test_extractLTokenPos")) 213 suite2.addTest(Test_SyntheticAlthusser("test_alignement")) 214 suite2.addTest(Test_SyntheticAlthusser("test_post_traitement_alignement")) 215 suite2.addTest(Test_SyntheticAlthusser("test_calcul_frequences")) 216 suite3 = unittest.TestSuite() 217 suite3.addTest(Test_SyntheticCharroi("test_etiquetage")) 218 suite3.addTest(Test_SyntheticCharroi("test_extractLTokenPos")) 219 suite3.addTest(Test_SyntheticCharroi("test_alignement")) 220 suite3.addTest(Test_SyntheticCharroi("test_post_traitement_alignement")) 221 suite3.addTest(Test_SyntheticCharroi("test_calcul_frequences")) 222 suite4 = unittest.TestSuite() 223 #suite4.addTest(Test_SyntheticAragon("test_etiquetage")) 224 #suite4.addTest(Test_SyntheticAragon("test_extractLTokenPos")) 225 #suite4.addTest(Test_SyntheticAragon("test_alignement")) 226 #suite4.addTest(Test_SyntheticAragon("test_post_traitement_alignement")) 227 suite4.addTest(Test_SyntheticAragon("test_calcul_frequences")) 228 suite5 = unittest.TestSuite() 229 suite5.addTest(Test_BiBlocList("test_constructor")) 230 suite5.addTest(Test_BiBlocList("test_decoreDep")) 231 #suite = unittest.TestSuite((suite1, suite2, suite3, suite4,suite5)) 232 suite = unittest.TestSuite((suite4)) 233 return suite
234
235 -def suiteFM():
236 suite = unittest.TestSuite() 237 suite.addTest(Test_FrequencyMatrix("test_fm")) 238 #suite.addTest(Test_TagFrequencyMatrix("test_fm")) 239 suite.addTest(Test_TagFrequencyMatrix2("test_fm2")) 240 return suite
241
242 -def trace(commande,dic_locals):
243 import profile,pstats,sys 244 #profile.runctx(commande,globals(), locals(),'Z:\workspace\medite\statFile') 245 profile.runctx(commande,globals(), dic_locals,'c:\workspace\medite\statFile') 246 s = pstats.Stats('c:\workspace\medite\statFile') 247 s.sort_stats('time') 248 s.print_stats() 249 sys.stderr.flush() 250 sys.stdout.flush()
251 252 if __name__ == '__main__': 253 unittest.TextTestRunner(verbosity=2).run(suite()) 254 #unittest.TextTestRunner(verbosity=2).run(suiteFM()) 255