Commit 025c36e72ccba768b28313f125b240fcbe290e1b

  • Tree SHA1: a885656
  • Parent SHA1: ef5d2d7 (Lisätty tarkastukset sille onko kytkin kytketty olleenkaan tai onko kytkin johdotettu ulostuloon asti. Molemmista virheilmoitus ja pisteet nollille.)
  • raw diff | raw patch
Lisätty: pisteet nolliin jos porteista on kaikki inputit TAI kaikki outputit kytkemättä. Jos on molemmista kaikki kytkemättä, niin ei virhettä, koska ne ei vaikuta kytkentään, eikä niitä lasketa käytetyiksi komponenteiksi
kaksoinegaatio_toteutettu_mutta_LED_DChen.txt
(15 / 0)
  
1{
2 "devices":[
3 {"type":"DC","id":"dev0","x":56,"y":72,"label":"DC"},
4 {"type":"Toggle","id":"dev1","x":160,"y":72,"label":"A"},
5 {"type":"LED","id":"dev2","x":376,"y":72,"label":"LED","color":"#ff00ff"},
6 {"type":"NOT","id":"dev3","x":232,"y":112,"label":"NOT"},
7 {"type":"NOT","id":"dev4","x":288,"y":112,"label":"NOT"}
8 ],
9 "connectors":[
10 {"from":"dev1.in0","to":"dev0.out0"},
11 {"from":"dev2.in0","to":"dev1.out0"},
12 {"from":"dev3.in0","to":"dev1.out0"},
13 {"from":"dev4.in0","to":"dev3.out0"}
14 ]
15}
kaksoisnegaatio_kelluvia_komponentteja.txt
(17 / 0)
  
1{
2 "devices":[
3 {"type":"DC","id":"dev0","x":56,"y":72,"label":"DC"},
4 {"type":"Toggle","id":"dev1","x":160,"y":72,"label":"A"},
5 {"type":"LED","id":"dev2","x":376,"y":72,"label":"LED","color":"#ff00ff"},
6 {"type":"NOT","id":"dev3","x":232,"y":112,"label":"NOT"},
7 {"type":"NOT","id":"dev4","x":288,"y":112,"label":"NOT"},
8 {"type":"NOT","id":"dev5","x":184,"y":200,"label":"NOT"},
9 {"type":"NAND","id":"dev6","x":304,"y":264,"label":"NAND"}
10 ],
11 "connectors":[
12 {"from":"dev1.in0","to":"dev0.out0"},
13 {"from":"dev2.in0","to":"dev4.out0"},
14 {"from":"dev3.in0","to":"dev1.out0"},
15 {"from":"dev4.in0","to":"dev3.out0"}
16 ]
17}
simcirtest.py
(10 / 4)
  
114114 # Lista käytetyistä komponenteista, DC mukana lausekkeiden muodostamista varten (jos portti/LED kytketty suoraan DC:hen ohi kytkimen
115115 self.komponentit = ['AND', 'NAND', 'OR', 'NOR', 'XOR', 'XNOR', 'EOR', 'ENOR', 'NOT', 'DC']
116116 self.portit = set() # Store the types of ports used in the schematic (ehkäpä lista olisi parempi, jos halutaan tallentaa myöhemmin määrää), vertailussa nykyään se kuitenkin muutetaan listaksi
117 self.kytkematta = [] # Lista porteista joiden ulostulo(t) tai sisäänmeno(t) on kytkemättä
117 self.kytkematta = [] # Lista porteista joiden ulostulo(t) tai sisäänmeno(t) on kytkemättä. Ne joissa kaikki kytkemättä erotellaan erilleen
118 self.kelluvat =[] # komponentit, joista ei mitään kytketty, eli ei vaikuta millään tavalla kytkentään.
118119 self.inputkytkematta = [] # Lista kytkimistä, joita ei ole kytketty
119120 if data is not None:
120121 self.devices = {}
146146 #print(dev.dev_id in [x.to_id for x in self.connectors])
147147 #print('dev ' + dev.dev_id)
148148 if dev.dev_id in [x.from_id for x in self.connectors] and dev.dev_id in [x.to_id for x in self.connectors]:
149 self.portit.add(dev.dev_type)
149 self.portit.add(dev.dev_type) # ainakin 1 input ja 1 output kytketty
150 elif dev.dev_id in [x.from_id for x in self.connectors] or dev.dev_id in [x.to_id for x in self.connectors]:
151 self.kytkematta.append(dev.dev_type) # joko input tai output kytketty, mutta ei molempia
150152 else:
151 self.kytkematta.append(dev.dev_type)
153 self.kelluvat.append(dev.dev_type) # ei yhtään input tai output kytketty
152154
153155 #print('kytketty ' + str(self.portit))
154156 #print('kytkemättä ' + str(self.kytkematta))
283283
284284 for out in self.ulostulot:
285285 testlist.append(self.devices[out.from_id].label)
286 #self.kytkematta
287286 if len(testlist) != len(set(testlist)): # Jos duplikaatti LEDejä
288287 return -1, self.portit
289288 if len(self.terminals) != len(set(self.terminals)): # Jos duplikaatti kytkimiä
290289 return -2, self.portit
291290 if self.inputkytkematta != []: # Jos kytkin kytkemättä
292291 return -7, self.inputkytkematta
292 # self.kytkematta <-- jos noita niin rangaistaan
293 if self.kytkematta != []: # Jos jonkin komponentin (kaikki) inputit tai (kaikki) outputit kytkemättä
294 return -9, self.inputkytkematta
293295 kytkemattomat = list(set(self.ledit) - set(testlist))
294296 if kytkemattomat != []: # LED kytkemättä
295297 for k in kytkemattomat:
598598 # 0 -> -len, 1 -> -(len-1), ...
599599 # Tulostetaan virhetekstit aina (myös koetilanteessa)
600600 virhetekstit = [
601 "Kytkennässä ei ole johdotettu kaikkia käytettyjen porttien\nsisäänmenoja tai ulostuloja. Tarkista kytkennän johdotukset.\n",
601602 "Kytkennässä ei ole johdotettu kaikkia kytkimiä (porttien kautta)\njohonkin ulostuloon. Tarkista kytkennän johdotukset.\n",
602603 "Kytkennässä ei ole johdotettu kaikkia kytkimien sisäänmenoja\nja ulostuloja. Tarkista kytkinten johdotukset.\n",
603604 "Kytkennässä on jokin komponentti, jota tarkistin ei tue.\nKäytä vain työkaluissa ja piirikaaviossa olevia komponentteja\n",
testit.py
(6 / 0)
  
130130
131131sys.stdout.write('Testi: Kaksoisnegaatio (kytkin ja LED kytketty, mutta ei toisiinsa)' + '\n')
132132testit('kaksoisnegaatio_kytkin_ei_lediin.txt', 'kaksoisnegaatio.txt', 1)
133
134sys.stdout.write('Testi: Kaksoisnegaatio (kytkin ja LED kytketty yhteen, kytkennässä myös 2 NOT:ia kaksoisnegaationa,\nmutta niiden ulostuloa ei kytketty mihinkään)' + '\n')
135testit('kaksoinegaatio_toteutettu_mutta_LED_DChen.txt', 'kaksoisnegaatio.txt', 1)
136
137sys.stdout.write('Testi: Kaksoisnegaatio, kytkentä oikein, mutta kelluvia komponentteja (mitään ei kytketty)' + '\n')
138testit('kaksoisnegaatio_kelluvia_komponentteja.txt', 'kaksoisnegaatio.txt', 1)