eletro 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
 - data/eletro.gemspec +7 -2
 - data/lib/eletro.rb +3 -0
 - data/lib/eletro/capacitor.rb +4 -12
 - data/lib/eletro/helpers/color_code.rb +14 -3
 - data/lib/eletro/ohm.rb +0 -2
 - data/lib/eletro/part.rb +4 -3
 - data/lib/eletro/resistor.rb +7 -0
 - data/lib/eletro/transistor.rb +37 -1
 - data/lib/eletro/wire.rb +68 -0
 - data/spec/eletro/capacitor_spec.rb +29 -6
 - data/spec/eletro/part_spec.rb +9 -6
 - data/spec/eletro/resistor_spec.rb +56 -22
 - data/spec/eletro/transistor_spec.rb +66 -0
 - data/spec/eletro/wire_spec.rb +26 -0
 - metadata +8 -3
 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.1. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.1.1
         
     | 
    
        data/eletro.gemspec
    CHANGED
    
    | 
         @@ -5,11 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = %q{eletro}
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "0.1. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "0.1.1"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["Marcos Piccinini"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = %q{2010-11- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2010-11-28}
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.default_executable = %q{eletro}
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.description = %q{Eletric Stuff, Ohm Law, Resistor Colors, Karnaugh Maps and other gems on Ruby}
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.email = %q{x@nofxx.com}
         
     | 
| 
         @@ -37,12 +37,15 @@ Gem::Specification.new do |s| 
     | 
|
| 
       37 
37 
     | 
    
         
             
                 "lib/eletro/resistor.rb",
         
     | 
| 
       38 
38 
     | 
    
         
             
                 "lib/eletro/source.rb",
         
     | 
| 
       39 
39 
     | 
    
         
             
                 "lib/eletro/transistor.rb",
         
     | 
| 
      
 40 
     | 
    
         
            +
                 "lib/eletro/wire.rb",
         
     | 
| 
       40 
41 
     | 
    
         
             
                 "spec/colour_test",
         
     | 
| 
       41 
42 
     | 
    
         
             
                 "spec/eletro/capacitor_spec.rb",
         
     | 
| 
       42 
43 
     | 
    
         
             
                 "spec/eletro/ohm_spec.rb",
         
     | 
| 
       43 
44 
     | 
    
         
             
                 "spec/eletro/part_spec.rb",
         
     | 
| 
       44 
45 
     | 
    
         
             
                 "spec/eletro/resistor_spec.rb",
         
     | 
| 
       45 
46 
     | 
    
         
             
                 "spec/eletro/source_spec.rb",
         
     | 
| 
      
 47 
     | 
    
         
            +
                 "spec/eletro/transistor_spec.rb",
         
     | 
| 
      
 48 
     | 
    
         
            +
                 "spec/eletro/wire_spec.rb",
         
     | 
| 
       46 
49 
     | 
    
         
             
                 "spec/eletro_spec.rb",
         
     | 
| 
       47 
50 
     | 
    
         
             
                 "spec/spec_helper.rb"
         
     | 
| 
       48 
51 
     | 
    
         
             
              ]
         
     | 
| 
         @@ -57,7 +60,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       57 
60 
     | 
    
         
             
                 "spec/eletro/capacitor_spec.rb",
         
     | 
| 
       58 
61 
     | 
    
         
             
                 "spec/eletro/ohm_spec.rb",
         
     | 
| 
       59 
62 
     | 
    
         
             
                 "spec/eletro/resistor_spec.rb",
         
     | 
| 
      
 63 
     | 
    
         
            +
                 "spec/eletro/transistor_spec.rb",
         
     | 
| 
       60 
64 
     | 
    
         
             
                 "spec/eletro/part_spec.rb",
         
     | 
| 
      
 65 
     | 
    
         
            +
                 "spec/eletro/wire_spec.rb",
         
     | 
| 
       61 
66 
     | 
    
         
             
                 "spec/eletro_spec.rb"
         
     | 
| 
       62 
67 
     | 
    
         
             
              ]
         
     | 
| 
       63 
68 
     | 
    
         | 
    
        data/lib/eletro.rb
    CHANGED
    
    
    
        data/lib/eletro/capacitor.rb
    CHANGED
    
    | 
         @@ -3,6 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            module Eletro
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              class Capacitor < Part
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       6 
7 
     | 
    
         
             
                attr_accessor :polarized
         
     | 
| 
       7 
8 
     | 
    
         | 
| 
       8 
9 
     | 
    
         
             
                include ColorCode
         
     | 
| 
         @@ -17,11 +18,9 @@ module Eletro 
     | 
|
| 
       17 
18 
     | 
    
         
             
                    m = mult[m[0]]
         
     | 
| 
       18 
19 
     | 
    
         
             
                  else
         
     | 
| 
       19 
20 
     | 
    
         
             
                    st, nd, m = txt.split(//)
         
     | 
| 
       20 
     | 
    
         
            -
                    m ||= 0
         
     | 
| 
       21 
21 
     | 
    
         
             
                    m = m.to_i #(10**-(m.to_i))
         
     | 
| 
       22 
22 
     | 
    
         
             
                  end
         
     | 
| 
       23 
     | 
    
         
            -
                   
     | 
| 
       24 
     | 
    
         
            -
                  num
         
     | 
| 
      
 23 
     | 
    
         
            +
                  ("#{st}#{nd}#{'0' * m}").to_f * mult['p']
         
     | 
| 
       25 
24 
     | 
    
         
             
                end
         
     | 
| 
       26 
25 
     | 
    
         | 
| 
       27 
26 
     | 
    
         
             
                def unit
         
     | 
| 
         @@ -29,7 +28,7 @@ module Eletro 
     | 
|
| 
       29 
28 
     | 
    
         
             
                end
         
     | 
| 
       30 
29 
     | 
    
         | 
| 
       31 
30 
     | 
    
         
             
                def mult
         
     | 
| 
       32 
     | 
    
         
            -
                  { ' 
     | 
| 
      
 31 
     | 
    
         
            +
                  { 'u' => 10e-6, 'n' => 10e-9, 'p' => 10e-12 }
         
     | 
| 
       33 
32 
     | 
    
         
             
                end
         
     | 
| 
       34 
33 
     | 
    
         | 
| 
       35 
34 
     | 
    
         
             
                def format
         
     | 
| 
         @@ -37,14 +36,7 @@ module Eletro 
     | 
|
| 
       37 
36 
     | 
    
         
             
                  mult.keys.reverse.each do |k|
         
     | 
| 
       38 
37 
     | 
    
         
             
                    m = k if value >= mult[k]
         
     | 
| 
       39 
38 
     | 
    
         
             
                  end
         
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
       41 
     | 
    
         
            -
                  #   "%g" % @value
         
     | 
| 
       42 
     | 
    
         
            -
                  # elsif value < 1000000
         
     | 
| 
       43 
     | 
    
         
            -
                  #   "%gk" % (@value/1000)
         
     | 
| 
       44 
     | 
    
         
            -
                  # else
         
     | 
| 
       45 
     | 
    
         
            -
                  #   "%gm" % (@value/1000000)
         
     | 
| 
       46 
     | 
    
         
            -
                  # end
         
     | 
| 
       47 
     | 
    
         
            -
                  out = "%g#{m}#{unit}" %  (value/mult[m]).round
         
     | 
| 
      
 39 
     | 
    
         
            +
                  out = "%g#{m}#{unit}" %  (value/mult[m]) #.round
         
     | 
| 
       48 
40 
     | 
    
         
             
                  out += " ± #{@precision}%" if @precision
         
     | 
| 
       49 
41 
     | 
    
         
             
                  out
         
     | 
| 
       50 
42 
     | 
    
         
             
                end
         
     | 
| 
         @@ -42,6 +42,9 @@ module Eletro 
     | 
|
| 
       42 
42 
     | 
    
         
             
                  CODE.index(char.downcase.to_sym)
         
     | 
| 
       43 
43 
     | 
    
         
             
                end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
      
 45 
     | 
    
         
            +
                #
         
     | 
| 
      
 46 
     | 
    
         
            +
                # Converts the color code value to numeric
         
     | 
| 
      
 47 
     | 
    
         
            +
                #
         
     | 
| 
       45 
48 
     | 
    
         
             
                def color2value chars
         
     | 
| 
       46 
49 
     | 
    
         
             
                  out = calc(chars[0])
         
     | 
| 
       47 
50 
     | 
    
         
             
                  out = (out.to_s + calc(chars[1]).to_s).to_f
         
     | 
| 
         @@ -54,16 +57,24 @@ module Eletro 
     | 
|
| 
       54 
57 
     | 
    
         
             
                  out
         
     | 
| 
       55 
58 
     | 
    
         
             
                end
         
     | 
| 
       56 
59 
     | 
    
         | 
| 
      
 60 
     | 
    
         
            +
                #
         
     | 
| 
      
 61 
     | 
    
         
            +
                # Converts a numeric value into a color code array
         
     | 
| 
      
 62 
     | 
    
         
            +
                #
         
     | 
| 
      
 63 
     | 
    
         
            +
                #              st   nd   rest (multiplier)
         
     | 
| 
      
 64 
     | 
    
         
            +
                #    123.0 -> ['1', '2', '3.0']
         
     | 
| 
      
 65 
     | 
    
         
            +
                #
         
     | 
| 
      
 66 
     | 
    
         
            +
                #
         
     | 
| 
       57 
67 
     | 
    
         
             
                def value2color value
         
     | 
| 
       58 
68 
     | 
    
         
             
                  st, nd, *rest = value.to_s.split(//)
         
     | 
| 
       59 
69 
     | 
    
         
             
                  out = [CODE[st.to_i], CODE[nd.to_i]]
         
     | 
| 
       60 
     | 
    
         
            -
                   
     | 
| 
       61 
     | 
    
         
            -
                  index ||= (value ** 0.1).round
         
     | 
| 
       62 
     | 
    
         
            -
                  out << CODE[index]
         
     | 
| 
      
 70 
     | 
    
         
            +
                  out << CODE[value.to_i.to_s.size-2]
         
     | 
| 
       63 
71 
     | 
    
         
             
                  out
         
     | 
| 
       64 
72 
     | 
    
         
             
                end
         
     | 
| 
       65 
73 
     | 
    
         | 
| 
       66 
74 
     | 
    
         | 
| 
      
 75 
     | 
    
         
            +
                #
         
     | 
| 
      
 76 
     | 
    
         
            +
                # Creates a coloured version to print on stdout
         
     | 
| 
      
 77 
     | 
    
         
            +
                #
         
     | 
| 
       67 
78 
     | 
    
         
             
                def rgblize color
         
     | 
| 
       68 
79 
     | 
    
         
             
                  s = case color.to_s.downcase.to_sym
         
     | 
| 
       69 
80 
     | 
    
         
             
                    when :k then  "\e[40m"
         
     | 
    
        data/lib/eletro/ohm.rb
    CHANGED
    
    
    
        data/lib/eletro/part.rb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Eletro
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
              class Part
         
     | 
| 
       4 
     | 
    
         
            -
                attr_accessor :value, :unit, :p0, :p1, :v
         
     | 
| 
      
 4 
     | 
    
         
            +
                attr_accessor :value, :unit, :p0, :p1, :v, :i
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
                def p0
         
     | 
| 
       7 
7 
     | 
    
         
             
                  @p0 ||= :gnd
         
     | 
| 
         @@ -59,8 +59,9 @@ module Eletro 
     | 
|
| 
       59 
59 
     | 
    
         
             
                      respond_to?(txt) ? send(args.join) : nil
         
     | 
| 
       60 
60 
     | 
    
         
             
                    end
         
     | 
| 
       61 
61 
     | 
    
         
             
                  else
         
     | 
| 
       62 
     | 
    
         
            -
                     
     | 
| 
       63 
     | 
    
         
            -
                    " 
     | 
| 
      
 62 
     | 
    
         
            +
                    super
         
     | 
| 
      
 63 
     | 
    
         
            +
                    # raise NoMethodError.new("undefined method `#{args.join}' " +
         
     | 
| 
      
 64 
     | 
    
         
            +
                    # "for #{self.inspect}:#{self.class.name}")
         
     | 
| 
       64 
65 
     | 
    
         
             
                  end
         
     | 
| 
       65 
66 
     | 
    
         | 
| 
       66 
67 
     | 
    
         
             
                end
         
     | 
    
        data/lib/eletro/resistor.rb
    CHANGED
    
    
    
        data/lib/eletro/transistor.rb
    CHANGED
    
    | 
         @@ -1,8 +1,44 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Eletro
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       3 
4 
     | 
    
         
             
              class Transistor < Part
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
                
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_accessor :i, :name, :ri, :hfe
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def initialize *args
         
     | 
| 
      
 9 
     | 
    
         
            +
                  params, txt = *args.partition { |a| a.is_a?(Hash) }
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @npn = params[0] && params[0][:type] == "pnp" ? false : true
         
     | 
| 
      
 11 
     | 
    
         
            +
                  @name = txt.join
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def w
         
     | 
| 
      
 15 
     | 
    
         
            +
                  v * i
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def npn?
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @npn
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                def pnp?
         
     | 
| 
      
 23 
     | 
    
         
            +
                  !@npn
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                def self.pnp
         
     | 
| 
      
 28 
     | 
    
         
            +
                  new(:type => "pnp")
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                def self.npn
         
     | 
| 
      
 32 
     | 
    
         
            +
                  new
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                # Theory of thermal resistance
         
     | 
| 
      
 36 
     | 
    
         
            +
                # Tj = Ta + Rth(j-a) * P
         
     | 
| 
      
 37 
     | 
    
         
            +
                #
         
     | 
| 
      
 38 
     | 
    
         
            +
                # Ta -> Ambient temp
         
     | 
| 
      
 39 
     | 
    
         
            +
                # Rth(j-a) -> Thermal resistance inbetween Junction and Ambient
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
       6 
42 
     | 
    
         
             
              end
         
     | 
| 
       7 
43 
     | 
    
         | 
| 
       8 
44 
     | 
    
         
             
            end
         
     | 
    
        data/lib/eletro/wire.rb
    ADDED
    
    | 
         @@ -0,0 +1,68 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Eletro
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              class Wire < Part
         
     | 
| 
      
 5 
     | 
    
         
            +
                MULT = { :mil => 2.54e-3, :mm => 0.1, :um => 1e-4 }
         
     | 
| 
      
 6 
     | 
    
         
            +
                TEMP = 25
         
     | 
| 
      
 7 
     | 
    
         
            +
                RHO = 1.7e-6
         
     | 
| 
      
 8 
     | 
    
         
            +
                ALPHA = 3.9e-3 # //ohm/ohm/C
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                LEN = 1
         
     | 
| 
      
 11 
     | 
    
         
            +
                TEMP_RISE = 10
         
     | 
| 
      
 12 
     | 
    
         
            +
                THICKNESS = 0.1
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                IRISE = {
         
     | 
| 
      
 16 
     | 
    
         
            +
                  :internal => { :k => 0.048, :b => 0.44, :c => 0.725 },
         
     | 
| 
      
 17 
     | 
    
         
            +
                  :external => { :k => 0.024, :b => 0.44, :c => 0.725 }
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # return Math.pow((current/(k*Math.pow(rise,b))),1/c)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                }
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                attr_accessor :width, :thickness, :length
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def spacing
         
     | 
| 
      
 25 
     | 
    
         
            +
                  case v
         
     | 
| 
      
 26 
     | 
    
         
            +
                  when 0..100 then [0.005, 0.004]
         
     | 
| 
      
 27 
     | 
    
         
            +
                  when 101..300 then [0.015, 0.008]
         
     | 
| 
      
 28 
     | 
    
         
            +
                  when 301..500 then [0.030, 0.010]
         
     | 
| 
      
 29 
     | 
    
         
            +
                  else
         
     | 
| 
      
 30 
     | 
    
         
            +
                    0.030 * ( v / 500)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                def area(place)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @area = (i / IRISE[place][:k] * (TEMP_RISE ** IRISE[place][:b])) ** (1/IRISE[place][:c])
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                def tk
         
     | 
| 
      
 39 
     | 
    
         
            +
                  @tk || THICKNESS
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                def calc(pos = :external)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  area = area(pos) #, @temp_rise || TEMP_RISE) #  //mils^2
         
     | 
| 
      
 44 
     | 
    
         
            +
                  area = area * 2.54 * 2.54 / 1e6 # //mil^2 to cm^2
         
     | 
| 
      
 45 
     | 
    
         
            +
                  wi = area / tk
         
     | 
| 
      
 46 
     | 
    
         
            +
                  wi = wi / MULT[@mult || :mm]
         
     | 
| 
      
 47 
     | 
    
         
            +
                  tval = 1 * (@temp || TEMP) + 1 * TEMP_RISE
         
     | 
| 
      
 48 
     | 
    
         
            +
                  ri = (RHO * LEN / area) * (1 + ALPHA * (tval-25))
         
     | 
| 
      
 49 
     | 
    
         
            +
                  vi = ri * i
         
     | 
| 
      
 50 
     | 
    
         
            +
                  pi = i * i * ri
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  # ae = area
         
     | 
| 
      
 53 
     | 
    
         
            +
                  # ae = ae * 2.54 * 2.54 / 1e6 #  //mil^2 to cm^2
         
     | 
| 
      
 54 
     | 
    
         
            +
                  # we = ae/tk # //cm
         
     | 
| 
      
 55 
     | 
    
         
            +
                  # we = we/document.getElementById("twSelect3").value # //user units
         
     | 
| 
      
 56 
     | 
    
         
            +
                  # re = (rho*len/ae)*(1+alpha*(tval-25))
         
     | 
| 
      
 57 
     | 
    
         
            +
                  # ve = re*i
         
     | 
| 
      
 58 
     | 
    
         
            +
                  # pe = i*i*re
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                def size
         
     | 
| 
      
 63 
     | 
    
         
            +
                  calc
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -12,17 +12,40 @@ describe "Eletro::Capacitor" do 
     | 
|
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                it "should instantiate 47" do
         
     | 
| 
       15 
     | 
    
         
            -
                   
     | 
| 
       16 
     | 
    
         
            -
                   
     | 
| 
       17 
     | 
    
         
            -
                   
     | 
| 
      
 15 
     | 
    
         
            +
                  c = Capacitor.new("47")
         
     | 
| 
      
 16 
     | 
    
         
            +
                  c.value.should be_within(10e-10).of(4.7e-10)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  c.format.should eql("47pF")
         
     | 
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
                it "should instantiate 102" do
         
     | 
| 
       21 
     | 
    
         
            -
                   
     | 
| 
       22 
     | 
    
         
            -
                   
     | 
| 
       23 
     | 
    
         
            -
                   
     | 
| 
      
 21 
     | 
    
         
            +
                  c = Capacitor.new("102")
         
     | 
| 
      
 22 
     | 
    
         
            +
                  c.value.should be_within(10e-10).of(1.0e-8)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  c.format.should eql("1nF")
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
      
 26 
     | 
    
         
            +
                it "should instantiate 472" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  c = Capacitor.new("472")
         
     | 
| 
      
 28 
     | 
    
         
            +
                  c.value.should be_within(10e-10).of(4.7e-8)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  c.format.should eql("4.7nF")
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                it "should instantiate 473" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  c = Capacitor.new("473")
         
     | 
| 
      
 34 
     | 
    
         
            +
                  c.value.should be_within(10e-10).of(4.7e-7)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  c.format.should eql("47nF")
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                it "should instantiate 10nF" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  c = Capacitor.new("103")
         
     | 
| 
      
 40 
     | 
    
         
            +
                  c.value.should be_within(10e-10).of(1.0e-7)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  c.format.should eql("10nF")
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                it "should instantiate 220nF" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  c = Capacitor.new("224")
         
     | 
| 
      
 46 
     | 
    
         
            +
                  c.value.should be_within(10e-10).of(2.2e-6)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  c.format.should eql("220nF")
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
       26 
49 
     | 
    
         | 
| 
       27 
50 
     | 
    
         
             
              end
         
     | 
| 
       28 
51 
     | 
    
         | 
    
        data/spec/eletro/part_spec.rb
    CHANGED
    
    | 
         @@ -2,21 +2,24 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe "Eletro::Part" do
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
              let(: 
     | 
| 
      
 5 
     | 
    
         
            +
              let(:part) { Part.new}
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              it "should have pins" do
         
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
      
 8 
     | 
    
         
            +
                part.p0.should eql(:gnd)
         
     | 
| 
       9 
9 
     | 
    
         
             
              end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              it "should get dynamic" do
         
     | 
| 
       12 
     | 
    
         
            -
                 
     | 
| 
      
 12 
     | 
    
         
            +
                part.p99.should be_nil
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              it "should set dynamic" do
         
     | 
| 
       16 
     | 
    
         
            -
                 
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
       18 
     | 
    
         
            -
                 
     | 
| 
      
 16 
     | 
    
         
            +
                part.p99.should be_nil
         
     | 
| 
      
 17 
     | 
    
         
            +
                part.p99 = :fu
         
     | 
| 
      
 18 
     | 
    
         
            +
                part.p99.should eql('fu')
         
     | 
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
              it "should return NoMethodErrors" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                lambda { part.blablabla }.should raise_error
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
       21 
24 
     | 
    
         | 
| 
       22 
25 
     | 
    
         
             
            end
         
     | 
| 
         @@ -5,41 +5,75 @@ describe "Eletro::Resistor" do 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              let(:rs) { Resistor.new }
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
      
 8 
     | 
    
         
            +
              it "should have a fancy instantiate method" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                200.R.should eql(Resistor.new(220))
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       8 
12 
     | 
    
         
             
              describe "Value" do
         
     | 
| 
       9 
13 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
                it "should instantiate 220 ohms" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                it "should instantiate 220 string ohms" do
         
     | 
| 
       11 
15 
     | 
    
         
             
                  r = Resistor.new("220")
         
     | 
| 
       12 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 16 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(220.0)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  r.format.should eql("220Ω")
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                it "should instantiate 220 integer ohms" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  r = Resistor.new(220)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(220.0)
         
     | 
| 
       13 
23 
     | 
    
         
             
                  r.format.should eql("220Ω")
         
     | 
| 
       14 
24 
     | 
    
         
             
                end
         
     | 
| 
       15 
25 
     | 
    
         | 
| 
       16 
26 
     | 
    
         
             
                it "should instantiate 100R ohms" do
         
     | 
| 
       17 
27 
     | 
    
         
             
                  r = Resistor.new("100R")
         
     | 
| 
       18 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 28 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(100.0)
         
     | 
| 
       19 
29 
     | 
    
         
             
                  r.format.should eql("100Ω")
         
     | 
| 
      
 30 
     | 
    
         
            +
                  Resistor.new("100").colors.join.should eql("bkb")
         
     | 
| 
       20 
31 
     | 
    
         
             
                end
         
     | 
| 
       21 
32 
     | 
    
         | 
| 
       22 
33 
     | 
    
         
             
                it "should instantiate 1k ohms" do
         
     | 
| 
       23 
     | 
    
         
            -
                  r = Resistor.new(" 
     | 
| 
      
 34 
     | 
    
         
            +
                  r = Resistor.new("1000.0")
         
     | 
| 
       24 
35 
     | 
    
         
             
                  r.value.should be_within(1000.0).of(0.1)
         
     | 
| 
       25 
36 
     | 
    
         
             
                  r.format.should eql("1kΩ")
         
     | 
| 
      
 37 
     | 
    
         
            +
                  Resistor.new("1k").colors.join.should eql("bkr")
         
     | 
| 
       26 
38 
     | 
    
         
             
                end
         
     | 
| 
       27 
39 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                it "should instantiate  
     | 
| 
       29 
     | 
    
         
            -
                  r = Resistor.new(" 
     | 
| 
       30 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
       31 
     | 
    
         
            -
                  r.format.should eql(" 
     | 
| 
      
 40 
     | 
    
         
            +
                it "should instantiate 10k ohms" do
         
     | 
| 
      
 41 
     | 
    
         
            +
                  r = Resistor.new("BKO")
         
     | 
| 
      
 42 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(10000)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  r.format.should eql("10kΩ")
         
     | 
| 
      
 44 
     | 
    
         
            +
                  Resistor.new("10k").colors.join.should eql("bko")
         
     | 
| 
       32 
45 
     | 
    
         
             
                end
         
     | 
| 
       33 
46 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
                it "should instantiate  
     | 
| 
      
 47 
     | 
    
         
            +
                it "should instantiate 100k ohms" do
         
     | 
| 
      
 48 
     | 
    
         
            +
                  r = Resistor.new("BKY")
         
     | 
| 
      
 49 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(100000)
         
     | 
| 
      
 50 
     | 
    
         
            +
                  r.format.should eql("100kΩ")
         
     | 
| 
      
 51 
     | 
    
         
            +
                  Resistor.new("100k").colors.join.should eql("bky")
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                it "should instantiate 1m ohms" do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  r = Resistor.new("BKG")
         
     | 
| 
      
 56 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(1000000)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  r.format.should eql("1mΩ")
         
     | 
| 
      
 58 
     | 
    
         
            +
                  Resistor.new("1m").colors.join.should eql("bkg")
         
     | 
| 
      
 59 
     | 
    
         
            +
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                it "should instantiate 10m ohms" do
         
     | 
| 
      
 62 
     | 
    
         
            +
                  r = Resistor.new("BKU")
         
     | 
| 
      
 63 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(10000000)
         
     | 
| 
      
 64 
     | 
    
         
            +
                  r.format.should eql("10mΩ")
         
     | 
| 
      
 65 
     | 
    
         
            +
                  Resistor.new("10m").colors.join.should eql("bku")
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                it "should instantiate 1.1k ohms" do
         
     | 
| 
       35 
69 
     | 
    
         
             
                  r = Resistor.new("1100.0")
         
     | 
| 
       36 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 70 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(1100.1)
         
     | 
| 
       37 
71 
     | 
    
         
             
                  r.format.should eql("1.1kΩ")
         
     | 
| 
       38 
72 
     | 
    
         
             
                end
         
     | 
| 
       39 
73 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                it "should instantiate 1k ohms" do
         
     | 
| 
      
 74 
     | 
    
         
            +
                it "should instantiate 1.1k ohms" do
         
     | 
| 
       41 
75 
     | 
    
         
             
                  r = Resistor.new("BBR")
         
     | 
| 
       42 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 76 
     | 
    
         
            +
                  r.value.should be_within(0.1).of(1100)
         
     | 
| 
       43 
77 
     | 
    
         
             
                  r.format.should eql("1.1kΩ")
         
     | 
| 
       44 
78 
     | 
    
         
             
                end
         
     | 
| 
       45 
79 
     | 
    
         | 
| 
         @@ -57,7 +91,7 @@ describe "Eletro::Resistor" do 
     | 
|
| 
       57 
91 
     | 
    
         | 
| 
       58 
92 
     | 
    
         
             
                it "should instantiate 1m5 ohms" do
         
     | 
| 
       59 
93 
     | 
    
         
             
                  r = Resistor.new("1m5")
         
     | 
| 
       60 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 94 
     | 
    
         
            +
                  r.value.should be_within(0.00001).of(1500000.0)
         
     | 
| 
       61 
95 
     | 
    
         
             
                  r.format.should eql("1.5mΩ")
         
     | 
| 
       62 
96 
     | 
    
         
             
                end
         
     | 
| 
       63 
97 
     | 
    
         | 
| 
         @@ -93,52 +127,52 @@ describe "Eletro::Resistor" do 
     | 
|
| 
       93 
127 
     | 
    
         | 
| 
       94 
128 
     | 
    
         
             
              end
         
     | 
| 
       95 
129 
     | 
    
         | 
| 
       96 
     | 
    
         
            -
              describe " 
     | 
| 
      
 130 
     | 
    
         
            +
              describe "Color Code" do
         
     | 
| 
       97 
131 
     | 
    
         | 
| 
       98 
132 
     | 
    
         
             
                it "should instantiate 3 chars" do
         
     | 
| 
       99 
133 
     | 
    
         
             
                  r = Resistor.new("BKR")
         
     | 
| 
       100 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 134 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(1000.0)
         
     | 
| 
       101 
135 
     | 
    
         
             
                  r.format.should eql("1kΩ")
         
     | 
| 
       102 
136 
     | 
    
         
             
                end
         
     | 
| 
       103 
137 
     | 
    
         | 
| 
       104 
138 
     | 
    
         
             
                it "should instantiate 3 chars" do
         
     | 
| 
       105 
139 
     | 
    
         
             
                  r = Resistor.new("BKO")
         
     | 
| 
       106 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 140 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(10000.0)
         
     | 
| 
       107 
141 
     | 
    
         
             
                  r.format.should eql("10kΩ")
         
     | 
| 
       108 
142 
     | 
    
         
             
                end
         
     | 
| 
       109 
143 
     | 
    
         | 
| 
       110 
144 
     | 
    
         
             
                it "should instantiate 3 chars" do
         
     | 
| 
       111 
145 
     | 
    
         
             
                  r = Resistor.new("YVR")
         
     | 
| 
       112 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 146 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(4700.0)
         
     | 
| 
       113 
147 
     | 
    
         
             
                  r.format.should eql("4.7kΩ")
         
     | 
| 
       114 
148 
     | 
    
         
             
                end
         
     | 
| 
       115 
149 
     | 
    
         | 
| 
       116 
150 
     | 
    
         
             
                it "should instantiate 3 chars" do
         
     | 
| 
       117 
151 
     | 
    
         
             
                  r = Resistor.new("YVR")
         
     | 
| 
       118 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 152 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(4700.0)
         
     | 
| 
       119 
153 
     | 
    
         
             
                  r.format.should eql("4.7kΩ")
         
     | 
| 
       120 
154 
     | 
    
         
             
                end
         
     | 
| 
       121 
155 
     | 
    
         | 
| 
       122 
156 
     | 
    
         
             
                it "should instantiate 4 chars" do
         
     | 
| 
       123 
157 
     | 
    
         
             
                  r = Resistor.new("WWRS")
         
     | 
| 
       124 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 158 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(9900.0)
         
     | 
| 
       125 
159 
     | 
    
         
             
                  r.format.should eql("9.9kΩ ± 10%")
         
     | 
| 
       126 
160 
     | 
    
         
             
                end
         
     | 
| 
       127 
161 
     | 
    
         | 
| 
       128 
162 
     | 
    
         
             
                it "should instantiate 4 chars" do
         
     | 
| 
       129 
163 
     | 
    
         
             
                  r = Resistor.new("BKRL")
         
     | 
| 
       130 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 164 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(1000.0)
         
     | 
| 
       131 
165 
     | 
    
         
             
                  r.format.should eql("1kΩ ± 5%")
         
     | 
| 
       132 
166 
     | 
    
         
             
                end
         
     | 
| 
       133 
167 
     | 
    
         | 
| 
       134 
168 
     | 
    
         
             
              end
         
     | 
| 
       135 
169 
     | 
    
         | 
| 
       136 
170 
     | 
    
         | 
| 
       137 
     | 
    
         
            -
              describe "Colors" do
         
     | 
| 
      
 171 
     | 
    
         
            +
              describe "Term Colors" do
         
     | 
| 
       138 
172 
     | 
    
         | 
| 
       139 
173 
     | 
    
         
             
                it "should print nicely" do
         
     | 
| 
       140 
174 
     | 
    
         
             
                  r = Resistor.new("BKR")
         
     | 
| 
       141 
     | 
    
         
            -
                  r.value.should be_within( 
     | 
| 
      
 175 
     | 
    
         
            +
                  r.value.should be_within(0.01).of(1000.0)
         
     | 
| 
       142 
176 
     | 
    
         
             
                  r.pretty_output.should eql("1kΩ   --\e[0;33mB\e[0m\e[40mK\e[0m\e[41mR\e[0m--")
         
     | 
| 
       143 
177 
     | 
    
         
             
                end
         
     | 
| 
       144 
178 
     | 
    
         | 
| 
         @@ -0,0 +1,66 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe "Eletro::Transistor" do
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              let(:t) { Transistor.new }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              it "should have V" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                t.v = 12
         
     | 
| 
      
 10 
     | 
    
         
            +
                t.v.should eql(12)
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              it "should have I" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                t.i = 12
         
     | 
| 
      
 15 
     | 
    
         
            +
                t.i.should eql(12)
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              it "should calculate W" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                t.v= 12
         
     | 
| 
      
 20 
     | 
    
         
            +
                t.i = 3
         
     | 
| 
      
 21 
     | 
    
         
            +
                t.w.should eql(36)
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              it { t.should be_npn }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              it { t.should_not be_pnp }
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              it "should have a name" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                t2 = Transistor.new("BC547")
         
     | 
| 
      
 30 
     | 
    
         
            +
                t2.name.should eql("BC547")
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              it "should have pnp" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                t2 = Transistor.new(:type => 'pnp')
         
     | 
| 
      
 35 
     | 
    
         
            +
                t2.should be_pnp
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              it "should have a pnp alternative initialize" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                t2 = Transistor.pnp
         
     | 
| 
      
 40 
     | 
    
         
            +
                t2.should be_pnp
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              it "should have a npn alternative initialize" do
         
     | 
| 
      
 44 
     | 
    
         
            +
                t2 = Transistor.npn
         
     | 
| 
      
 45 
     | 
    
         
            +
                t2.should be_npn
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              it "should have an Ri" do
         
     | 
| 
      
 49 
     | 
    
         
            +
                t.ri = 10
         
     | 
| 
      
 50 
     | 
    
         
            +
                t.ri.should eql(10)
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              it "should have hfe" do
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
              describe "Thermal Stuff" do
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                it "should calculate thermal resistance" do
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe "Eletro::Wire" do
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              let(:w) { Wire.new }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe "Value" do
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                it "should have width" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  w.width = 5.mm
         
     | 
| 
      
 11 
     | 
    
         
            +
                  w.width.should eql(5.mm)
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                it "should instantiate have i" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  w.i = 10.mA
         
     | 
| 
      
 16 
     | 
    
         
            +
                  w.i.should eql(10.mA)
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                it "should calc width" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  w.i = 1.A
         
     | 
| 
      
 21 
     | 
    
         
            +
                  w.size.should be_within(0.001).of(0.8)
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version 
     | 
|
| 
       5 
5 
     | 
    
         
             
              segments: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              - 0
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 1
         
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
       9 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 8 
     | 
    
         
            +
              - 1
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 0.1.1
         
     | 
| 
       10 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       11 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            - Marcos Piccinini
         
     | 
| 
         @@ -14,7 +14,7 @@ autorequire: 
     | 
|
| 
       14 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       15 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
            date: 2010-11- 
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2010-11-28 00:00:00 -02:00
         
     | 
| 
       18 
18 
     | 
    
         
             
            default_executable: eletro
         
     | 
| 
       19 
19 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       20 
20 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -75,12 +75,15 @@ files: 
     | 
|
| 
       75 
75 
     | 
    
         
             
            - lib/eletro/resistor.rb
         
     | 
| 
       76 
76 
     | 
    
         
             
            - lib/eletro/source.rb
         
     | 
| 
       77 
77 
     | 
    
         
             
            - lib/eletro/transistor.rb
         
     | 
| 
      
 78 
     | 
    
         
            +
            - lib/eletro/wire.rb
         
     | 
| 
       78 
79 
     | 
    
         
             
            - spec/colour_test
         
     | 
| 
       79 
80 
     | 
    
         
             
            - spec/eletro/capacitor_spec.rb
         
     | 
| 
       80 
81 
     | 
    
         
             
            - spec/eletro/ohm_spec.rb
         
     | 
| 
       81 
82 
     | 
    
         
             
            - spec/eletro/part_spec.rb
         
     | 
| 
       82 
83 
     | 
    
         
             
            - spec/eletro/resistor_spec.rb
         
     | 
| 
       83 
84 
     | 
    
         
             
            - spec/eletro/source_spec.rb
         
     | 
| 
      
 85 
     | 
    
         
            +
            - spec/eletro/transistor_spec.rb
         
     | 
| 
      
 86 
     | 
    
         
            +
            - spec/eletro/wire_spec.rb
         
     | 
| 
       84 
87 
     | 
    
         
             
            - spec/eletro_spec.rb
         
     | 
| 
       85 
88 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       86 
89 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
         @@ -121,5 +124,7 @@ test_files: 
     | 
|
| 
       121 
124 
     | 
    
         
             
            - spec/eletro/capacitor_spec.rb
         
     | 
| 
       122 
125 
     | 
    
         
             
            - spec/eletro/ohm_spec.rb
         
     | 
| 
       123 
126 
     | 
    
         
             
            - spec/eletro/resistor_spec.rb
         
     | 
| 
      
 127 
     | 
    
         
            +
            - spec/eletro/transistor_spec.rb
         
     | 
| 
       124 
128 
     | 
    
         
             
            - spec/eletro/part_spec.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - spec/eletro/wire_spec.rb
         
     | 
| 
       125 
130 
     | 
    
         
             
            - spec/eletro_spec.rb
         
     |