Sha256: 76ea8f039d0c62c21dc4cf0ba1221439e913f5116bc5d3eca60df913223e26fb

Contents?: true

Size: 1.23 KB

Versions: 3

Compression:

Stored size: 1.23 KB

Contents

require 'pione/test-helper'

describe Pione::PNML::InvalidArcElimination do
  it "should eliminate invalid arcs" do
    net = PNML::Net.new

    # place and transition
    place = PNML::Place.new(net, net.generate_id)
    net.places << place
    transition = PNML::Transition.new(net, net.generate_id)
    net.transitions << transition

    # valid arc
    valid_arc = PNML::Arc.new(net, net.generate_id, place.id, transition.id)
    net.arcs << valid_arc

    # invalid arcs
    net.arcs << PNML::Arc.new(net, net.generate_id, net.generate_id, net.generate_id)
    net.arcs << PNML::Arc.new(net, net.generate_id, place.id, net.generate_id)
    net.arcs << PNML::Arc.new(net, net.generate_id, net.generate_id, place.id)
    net.arcs << PNML::Arc.new(net, net.generate_id, transition.id, net.generate_id)
    net.arcs << PNML::Arc.new(net, net.generate_id, net.generate_id, transition.id)
    net.arcs << PNML::Arc.new(net, net.generate_id, place.id, place.id)
    net.arcs << PNML::Arc.new(net, net.generate_id, transition.id, transition.id)

    # apply "invalid arc elimination" rule
    PNML::NetRewriter.new{|rules| rules << PNML::InvalidArcElimination}.rewrite(net)

    # test
    net.arcs.size.should == 1
    net.arcs.should.include valid_arc
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pione-0.4.2 test/pnml/spec_invalid-arc-elimination.rb
pione-0.4.1 test/pnml/spec_invalid-arc-elimination.rb
pione-0.4.0 test/pnml/spec_invalid-arc-elimination.rb