Commit da96af7a2c901e87ebf82801c3f93503480d4bb9

  • Tree SHA1: 9ceb6f3
  • Parent SHA1: 4e32a0a (siiretty copy-paste koodia aliohjelmiksi, lisätty teksti kun kaaviossa ei virheitä, lisätty testejä, seuraavaksi korjattava se että ulostulo on jätetty kytkemättä)
  • raw diff | raw patch
korjattu: ulostulo on jätetty kytkemättä -> totuustauluun 'x'
simcirtest.py
(22 / 4)
  
6868
6969
7070def DC(): return True
71def x(): return 'x'
7172
7273
7374funcs = {'AND': AND, 'NOT': NOT, 'OR': OR, 'XOR': XOR, 'XNOR': XNOR, 'EOR': XOR, 'ENOR': XNOR, 'NAND(3in)': NAND}
117117 if data is not None:
118118 self.devices = {}
119119 self.ulostulot = []
120 self.ledit = []
120121 portti = 'LED' ## fix to support others some day
121122 for d in data['devices']:
122123 dev = Device(d)
123124 self.devices[dev.dev_id] = dev
124125 if dev.dev_type == 'Toggle': # lisää muita input tyyppejä
125126 self.terminals.add(dev.label)
127 if dev.dev_type == 'LED': # verrataan tähän, onko kytketty
128 self.ledit.append(dev.label)
126129
127130 self.connectors = [] # data['connectors']
128131 for c in data['connectors']:
209209 tulostettava += hianosti(locs, label_length).rstrip()
210210 for (nimi, lauseke) in sorted(lausekkeet.items()):
211211 # jos LED suoraan kytketty DC:hen
212 if lauseke == 'DC':
213 lauseke = 'DC()'
214 arvo = eval(lauseke, globals(), locs)
215 tulostettava += ' '.center(max(len(nimi), label_length)) + str(int(arvo))
212 if lauseke == 'x': # jos LED ei kytketty
213 arvo = 'x'
214 tulostettava += ' '.center(max(len(nimi), label_length)) + arvo
215 else:
216 if lauseke == 'DC':
217 lauseke = 'DC()'
218 arvo = eval(lauseke, globals(), locs)
219 tulostettava += ' '.center(max(len(nimi), label_length)) + str(int(arvo)) # change true,false to 1,0
216220 tulostettava += '\n'
217221 tulostettava = hd + '\n' + tulostettava
218222
227227 # for (i,j) in self.komponentit.items():
228228 # if j[1]=='B1': self.komponentit[i]=(j[0], 'B1')
229229 lausekkeet = {}
230 testlist = []
231 for out in self.ulostulot:
232 testlist.append(self.devices[out.from_id].label)
230233
234 kytkemattomat = list(set(self.ledit) - set(testlist))
235 if kytkemattomat != []:
236 for k in kytkemattomat:
237 lausekkeet[k] = 'x'
238 #lausekkeet[k] = 'False'
239 #if self.ulostulot == []:
240 # return
231241 for out in self.ulostulot:
232242 r = BinaryTree(out.to_id)
233243 self.muodostaPuu(self.connectors, r)
testit.py
(1 / 0)
  
3232 1 1 0 1
3333"""
3434
35
3536testit(otsikko, data, oikeadata, oikealauseke, oikeataulu)
3637
3738otsikko = 'Testi: Sininen ja Keltainen LED (kaaviossa virhe)'