Sha256: ef23fe3ffb52b4c0a879a38e6c49189e440600e16307793a7ebc091c7341fc2e

Contents?: true

Size: 1.03 KB

Versions: 11

Compression:

Stored size: 1.03 KB

Contents

require "spec_helper"
require 'origen_app_generators/sub_block_parser'

describe "Sub block parser" do

  before :all do
    @parser = OrigenAppGenerators::SubBlockParser.new
  end
  
  it "Can parse basic strings" do
    s = "ram, atd"
    @parser.parse(s).should == {"RAM" => {}, "ATD" => {}}
  end

  it "Can identify multiple instances" do
    s = "ram, osc(2), atd(3)"
    @parser.parse(s).should == {"RAM" => {}, "Osc" => {instances: 2}, "ATD" => {instances: 3}}
  end

  it "Can handle nesting" do
    s = "ram, atd, nvm[ram(2), osc]"
    @parser.parse(s).should == {"RAM" => {}, "ATD" => {}, "NVM" => {children: {
      "RAM" => {instances: 2}, "Osc" => {}
    }}}
  end

  it "Can handle a top-level namespace" do
    s = "Falcon[ram, atd, nvm[ram(2), osc]], Eagle[ram(2), atd]"
    @parser.parse(s).should == 
      { "Falcon" => { children: {"RAM" => {}, "ATD" => {}, "NVM" => {children: {
          "RAM" => {instances: 2}, "Osc" => {}
        }}}},
        "Eagle" => { children: {"RAM" => {instances: 2}, "ATD" => {}
        }}}
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
origen-0.44.0 origen_app_generators/spec/sub_block_spec.rb
origen-0.43.0 origen_app_generators/spec/sub_block_spec.rb
origen-0.42.2 origen_app_generators/spec/sub_block_spec.rb
origen-0.42.1 origen_app_generators/spec/sub_block_spec.rb
origen-0.42.0 origen_app_generators/spec/sub_block_spec.rb
origen-0.41.2 origen_app_generators/spec/sub_block_spec.rb
origen-0.41.1 origen_app_generators/spec/sub_block_spec.rb
origen-0.41.0 origen_app_generators/spec/sub_block_spec.rb
origen-0.40.2 origen_app_generators/spec/sub_block_spec.rb
origen-0.40.1 origen_app_generators/spec/sub_block_spec.rb
origen-0.40.0 origen_app_generators/spec/sub_block_spec.rb