Commit 56816bf4891dbfdc92eca492a44ddd74ea599e74

Lisätty virheilmoitus sille jos portti DC:n ja kytkimen välissä. Lisäksi päivitetty virheilmoitusta jos ei ollenkaan kytkimiä tai ulostuloja
koe6_portti_between_DC_kytkin.txt
(25 / 0)
  
1{
2 "devices":[
3 {"type":"DC","id":"dev0","x":56,"y":144,"label":"DC"},
4 {"type":"Toggle","id":"dev1","x":160,"y":72,"label":"a"},
5 {"type":"LED","id":"dev2","x":576,"y":72,"label":"Keltainen","color":"#ffff00"},
6 {"type":"LED","id":"dev3","x":576,"y":144,"label":"Sininen","color":"#0000ff"},
7 {"type":"AND","id":"dev4","x":344,"y":40,"label":"AND"},
8 {"type":"AND","id":"dev5","x":352,"y":160,"label":"AND"},
9 {"type":"Toggle","id":"dev6","x":184,"y":144,"label":"sel"},
10 {"type":"NOT","id":"dev7","x":280,"y":64,"label":"NOT"},
11 {"type":"NOT","id":"dev8","x":120,"y":144,"label":"NOT"}
12 ],
13 "connectors":[
14 {"from":"dev1.in0","to":"dev0.out0"},
15 {"from":"dev2.in0","to":"dev5.out0"},
16 {"from":"dev3.in0","to":"dev4.out0"},
17 {"from":"dev4.in0","to":"dev1.out0"},
18 {"from":"dev4.in1","to":"dev7.out0"},
19 {"from":"dev5.in0","to":"dev1.out0"},
20 {"from":"dev5.in1","to":"dev6.out0"},
21 {"from":"dev6.in0","to":"dev8.out0"},
22 {"from":"dev7.in0","to":"dev6.out0"},
23 {"from":"dev8.in0","to":"dev0.out0"}
24 ]
25}
simcirtest.py
(10 / 2)
  
117117 self.kytkematta = [] # Lista porteista joiden ulostulo(t) tai sisäänmeno(t) on kytkemättä. Ne joissa kaikki kytkemättä erotellaan erilleen
118118 self.kelluvat =[] # komponentit, joista ei mitään kytketty, eli ei vaikuta millään tavalla kytkentään.
119119 self.inputkytkematta = [] # Lista kytkimistä, joita ei ole kytketty
120 self.porttiennenkytkinta = [] # lista porteista, jotka on DC:n ja kytminen välissä
120121 if data is not None:
121122 self.devices = {}
122123 self.ulostulot = []
163163 self.ulostulot.append(c)
164164 # self.komponentit = {} # käytetään tämän tilalla self.devices
165165 # self.reverse = reverse
166
166 # Jos kytkimen ja DC:n välissä on jokin portti
167 if self.devices[c.from_id].dev_type == 'Toggle' and self.devices[c.to_id].dev_type != 'DC':
168 self.porttiennenkytkinta.append(self.devices[c.to_id].dev_type)
169 #print(self.devices[c.to_id].dev_type)
167170 #print(con.from_id in self.portit)
168171 #if self.devices[con.from_id].dev_type == portti:
169172 # save the device id which is connected to LED (portti)
174174 #self.ulostulot.append(con)
175175 # self.komponentit = {} # käytetään tämän tilalla self.devices
176176 # self.reverse = reverse
177
178177 ## Lopuksi katsotaan että oliko 3+ input komponentti ja vaihdetaan tilalle 3-input komponentit ja vastaavat kytkennät
179178 # Ei toimi vielä
180179 # for k, dev in list(self.devices.items()): # list because we modify self.devices
284284 if c.from_id == c.to_id: # Takaisinkytkentä (suoraan sisäänmenoon ulostulosta, helppo havaita, ei turhaan odoteta RecursionExce)
285285 return -3, self.portit
286286
287 if (self.ulostulot == [] or self.terminals == []): ## Kaikki ulostulot tai kytkimet on poistettu
288 return -4, self.portit
287289 for out in self.ulostulot:
288290 testlist.append(self.devices[out.from_id].label)
289291 if len(testlist) != len(set(testlist)): # Jos duplikaatti LEDejä
297297 # self.kytkematta <-- jos noita niin rangaistaan
298298 if self.kytkematta != []: # Jos jonkin komponentin (kaikki) inputit tai (kaikki) outputit kytkemättä
299299 return -9, self.inputkytkematta
300 if self.porttiennenkytkinta != []: # Jos portti on DC:n ja kytkimen välissä
301 return -10, self.porttiennenkytkinta
300302 kytkemattomat = list(set(self.ledit) - set(testlist))
301303 if kytkemattomat != []: # LED kytkemättä
302304 for k in kytkemattomat:
605605 # 0 -> -len, 1 -> -(len-1), ...
606606 # Tulostetaan virhetekstit aina (myös koetilanteessa)
607607 virhetekstit = [
608 "Kytkennässä on portti jännitelähteen (DC) ja kytkimen (sisäänmeno) välissä.\nPortti ei voi olla ennen sisäänmenoa, siirrä portti kytkimen toiselle puolelle.\n",
608609 "Kytkennässä ei ole johdotettu kaikkia käytettyjen porttien\nsisäänmenoja tai ulostuloja. Tarkista kytkennän johdotukset.\n",
609610 "Kytkennässä ei ole johdotettu kaikkia kytkimiä (porttien kautta)\njohonkin ulostuloon. Tarkista kytkennän johdotukset.\n",
610611 "Kytkennässä ei ole johdotettu kaikkia kytkimien sisäänmenoja\nja ulostuloja. Tarkista kytkinten johdotukset.\n",
testit.py
(3 / 0)
  
136136
137137sys.stdout.write('Testi: Kaksoisnegaatio, kytkentä oikein, mutta kelluvia komponentteja (mitään ei kytketty)' + '\n')
138138testit('kaksoisnegaatio_kelluvia_komponentteja.txt', 'kaksoisnegaatio.txt', 1)
139
140sys.stdout.write('Testi: Sininen ja Keltainen LED, portti kytkimen ja DC:n välissä' + '\n')
141testit('koe6_portti_between_DC_kytkin.txt', 'k6.txt', 1)