Commit ef5d2d7943c6437c279b355a876bfb4dbaa4fb93

  • Tree SHA1: 39d301b
  • Parent SHA1: 0718138 (Korjattu: oikean totuustaulun tapauksessa ei hyväksytä käytetyksi portiksi, jos sisäänmenot tai ulostulot on kytkemättä)
  • raw diff | raw patch
Lisätty tarkastukset sille onko kytkin kytketty olleenkaan tai onko kytkin johdotettu ulostuloon asti. Molemmista virheilmoitus ja pisteet nollille.
kaksoisnegaatio_kytkin_ei_kytketty.txt
(12 / 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":272,"y":72,"label":"NOT"}
7 ],
8 "connectors":[
9 {"from":"dev1.in0","to":"dev0.out0"},
10 {"from":"dev2.in0","to":"dev3.out0"}
11 ]
12}
kaksoisnegaatio_kytkin_ei_lediin.txt
(14 / 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":272,"y":72,"label":"NOT"},
7 {"type":"NOT","id":"dev4","x":232,"y":112,"label":"NOT"}
8 ],
9 "connectors":[
10 {"from":"dev1.in0","to":"dev0.out0"},
11 {"from":"dev2.in0","to":"dev3.out0"},
12 {"from":"dev4.in0","to":"dev1.out0"}
13 ]
14}
simcirtest.py
(13 / 2)
  
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
117117 self.kytkematta = [] # Lista porteista joiden ulostulo(t) tai sisäänmeno(t) on kytkemättä
118 self.inputkytkematta = [] # Lista kytkimistä, joita ei ole kytketty
118119 if data is not None:
119120 self.devices = {}
120121 self.ulostulot = []
132132 self.devices[dev.dev_id] = dev
133133 if dev.dev_type == 'Toggle': # lisää muita input tyyppejä
134134 #self.terminals.add(dev.label)
135 self.terminals.append(dev.label)
135 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]:
136 self.terminals.append(dev.label)
137 else:
138 self.inputkytkematta.append(dev.label)
139 #print(self.inputkytkematta)
136140 elif dev.dev_type == 'LED': # verrataan tähän, onko kytketty
137141 self.ledit.append(dev.label)
138142 elif dev.dev_type in self.komponentit and dev.dev_type != 'DC': # portit, joita kytkennässä käytetty
258258 arvo = eval(lauseke, globals(), locs)
259259 except:
260260 return -6 ## jokin komponentti kytkennässä jota ei voida evaluoida
261 if callable(arvo): # Jos on funktio, niin LED:ltä ei johdotusta kytkimelle asti
262 return -8
261263 tulostettava += ' '.center(max(len(nimi), label_length)) + str(int(arvo)) # change true,false to 1,0
262264 tulostettava += '\n'
263265 tulostettava = hd + '\n' + tulostettava
285285 return -1, self.portit
286286 if len(self.terminals) != len(set(self.terminals)): # Jos duplikaatti kytkimiä
287287 return -2, self.portit
288 if self.inputkytkematta != []: # Jos kytkin kytkemättä
289 return -7, self.inputkytkematta
288290 kytkemattomat = list(set(self.ledit) - set(testlist))
289291 if kytkemattomat != []: # LED kytkemättä
290292 for k in kytkemattomat:
508508 labels = str(' '.join(frmt1) + ' ' + ' '.join(frmt2))
509509 muokattu += labels.rstrip() + '\n'
510510 return muokattu
511 except ValueError:
511 except ValueError: # Tämä tapahtuu kun LED puuttuu
512512 return -4 ## palautetaan tyhjä totuustaulu, kaaviosta puuttuu sisäänmenoja ja/tai ulostuloja
513513
514514def onko_virheita(testitaulu, oikeataulu, maksimipisteet, portit = [], hyvportit = [], tulosta = True):
593593 # 0 -> -len, 1 -> -(len-1), ...
594594 # Tulostetaan virhetekstit aina (myös koetilanteessa)
595595 virhetekstit = [
596 "Kytkennässä ei ole johdotettu kaikkia kytkimiä (porttien kautta)\njohonkin ulostuloon. Tarkista kytkennän johdotukset.\n",
597 "Kytkennässä ei ole johdotettu kaikkia kytkimien sisäänmenoja\nja ulostuloja. Tarkista kytkinten johdotukset.\n",
596598 "Kytkennässä on jokin komponentti, jota tarkistin ei tue.\nKäytä vain työkaluissa ja piirikaaviossa olevia komponentteja\n",
597599 "Kytkennässä on liikaa sisäänmenoja tai ulostuloja.\nSisäänmenot ja ulostulot tulee olla: " + teksti + "\n",
598600 "Kytkennästä puuttuu sisäänmenoja tai ulostuloja.\nSisäänmenot ja ulostulot tulee olla: " + teksti + "\n",
testit.py
(6 / 0)
  
124124
125125sys.stdout.write('Testi: Kaksoisnegaatio (kaaviossa komponentteja joiden pinnejä ei kytketty)' + '\n')
126126testit('kaksoisnegaatio_NOT_kytkematta.txt', 'kaksoisnegaatio.txt', 1)
127
128sys.stdout.write('Testi: Kaksoisnegaatio (kytkin ei kytketty)' + '\n')
129testit('kaksoisnegaatio_kytkin_ei_kytketty.txt', 'kaksoisnegaatio.txt', 1)
130
131sys.stdout.write('Testi: Kaksoisnegaatio (kytkin ja LED kytketty, mutta ei toisiinsa)' + '\n')
132testit('kaksoisnegaatio_kytkin_ei_lediin.txt', 'kaksoisnegaatio.txt', 1)