@@ -283,3 +283,123 @@ def test_parse_oscillator(self):
283283 assert osc ['frequency' ] == 16 * mega
284284 assert osc ['tolerance' ] == 1
285285 assert osc ['capacitance' ] == 12 * pico
286+
287+
288+ class ParseDiodeTests (unittest .TestCase ):
289+ def test_parse_code (self ):
290+ parse = parser ('electro_grammar' , key = False )
291+ d = parse ('1N4148' )
292+ assert d ['type' ] == 'diode'
293+ assert d ['code' ] == '1N4148'
294+
295+ def test_parse_signal (self ):
296+ parse = parser ('electro_grammar' , key = False )
297+ d = parse ('sig' )
298+ assert d ['type' ] == 'diode'
299+ assert d ['dtype' ] == 'signal'
300+
301+ d = parse ('sig 1N4148' )
302+ assert d ['type' ] == 'diode'
303+ assert d ['dtype' ] == 'signal'
304+ assert d ['code' ] == '1N4148'
305+
306+ d = parse ('1N4148 sig' )
307+ assert d ['type' ] == 'diode'
308+ assert d ['dtype' ] == 'signal'
309+ assert d ['code' ] == '1N4148'
310+
311+ def test_parse_rectifier (self ):
312+ parse = parser ('electro_grammar' , key = False )
313+ d = parse ('rect' )
314+ assert d ['type' ] == 'diode'
315+ assert d ['dtype' ] == 'rectifier'
316+
317+ d = parse ('rect 1N4007' )
318+ assert d ['type' ] == 'diode'
319+ assert d ['dtype' ] == 'rectifier'
320+ assert d ['code' ] == '1N4007'
321+
322+ d = parse ('1N4007 rect' )
323+ assert d ['type' ] == 'diode'
324+ assert d ['dtype' ] == 'rectifier'
325+ assert d ['code' ] == '1N4007'
326+
327+ def test_parse_schottky (self ):
328+ parse = parser ('electro_grammar' , key = False )
329+ d = parse ('sk' )
330+ assert d ['type' ] == 'diode'
331+ assert d ['dtype' ] == 'schottky'
332+
333+ d = parse ('sk BAT54S' )
334+ assert d ['type' ] == 'diode'
335+ assert d ['dtype' ] == 'schottky'
336+ assert d ['code' ] == 'BAT54S'
337+
338+ d = parse ('BAT54S sk' )
339+ assert d ['type' ] == 'diode'
340+ assert d ['dtype' ] == 'schottky'
341+ assert d ['code' ] == 'BAT54S'
342+
343+ def test_parse_led (self ):
344+ parse = parser ('electro_grammar' , key = False )
345+ d = parse ('led white' )
346+ assert d ['type' ] == 'diode'
347+ assert d ['dtype' ] == 'led'
348+ assert d ['color' ] == 'white'
349+
350+ def test_parse_zener (self ):
351+ parse = parser ('electro_grammar' , key = False )
352+ d = parse ('z 5V' )
353+ assert d ['type' ] == 'diode'
354+ assert d ['dtype' ] == 'zener'
355+ assert d ['voltage' ] == 5
356+
357+
358+ class ParseTransistorTests (unittest .TestCase ):
359+ def test_parse_code (self ):
360+ parse = parser ('electro_grammar' , key = False )
361+ q = parse ('2N2222' )
362+ assert q ['type' ] == 'transistor'
363+ assert q ['code' ] == '2N2222'
364+
365+ def test_parse_npn (self ):
366+ parse = parser ('electro_grammar' , key = False )
367+ q = parse ('npn 2N2222' )
368+ assert q ['type' ] == 'transistor'
369+ assert q ['ttype' ] == 'npn'
370+ assert q ['code' ] == '2N2222'
371+
372+ q = parse ('2N2222 npn' )
373+ assert q ['type' ] == 'transistor'
374+ assert q ['ttype' ] == 'npn'
375+ assert q ['code' ] == '2N2222'
376+
377+ def test_parse_pnp (self ):
378+ parse = parser ('electro_grammar' , key = False )
379+ q = parse ('pnp BC547' )
380+ assert q ['type' ] == 'transistor'
381+ assert q ['ttype' ] == 'pnp'
382+ assert q ['code' ] == 'BC547'
383+
384+ q = parse ('BC547 pnp' )
385+ assert q ['type' ] == 'transistor'
386+ assert q ['ttype' ] == 'pnp'
387+ assert q ['code' ] == 'BC547'
388+
389+ def test_parse_nmos (self ):
390+ parse = parser ('electro_grammar' , key = False )
391+ q = parse ('nmos 2N7000' )
392+ assert q ['type' ] == 'transistor'
393+ assert q ['ttype' ] == 'nmos'
394+ assert q ['code' ] == '2N7000'
395+
396+ q = parse ('2N7000 nmos' )
397+ assert q ['type' ] == 'transistor'
398+ assert q ['ttype' ] == 'nmos'
399+ assert q ['code' ] == '2N7000'
400+
401+ def test_parse_pmos (self ):
402+ parse = parser ('electro_grammar' , key = False )
403+ q = parse ('pmos' )
404+ assert q ['type' ] == 'transistor'
405+ assert q ['ttype' ] == 'pmos'
0 commit comments