Sha256: dec7e5ff67d692159514f9a09e68c0e5240424f3a49d4b426e34a9ef3b4dab56

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

require 'test/unit'
require 'yargi'

module Yargi
  
  # Here to check that what's in the documentation is correct
  class DocumentationTest < Test::Unit::TestCase

    module Source; end
    module Sink; end

    def test_README_example
      # create a directed graph
      digraph = Yargi::Digraph.new
  
      # create 10 source and 5 sink vertices, tag them with user modules
      sources = digraph.add_n_vertices(5, Source)
      assert VertexSet===sources
  
      # connect source to sink states
      edges = digraph.connect(sources, sources)
      assert EdgeSet===edges
  
      # put some dot attributes
      sources.add_marks(:shape => 'circle', :label => '')
      edges.add_marks do |e|
        {:label => "From #{e.source.index} to #{e.target.index}"}
      end
  
      # and print it
      dir = File.expand_path(File.dirname(__FILE__))
      dotfile = File.join(dir,"README-example.dot")
      gitfile = File.join(dir,"README-example.gif")
      File.open(dotfile, 'w') {|f| f << digraph.to_dot}
      begin
        `dot -Tgif -o #{gitfile} #{dotfile}`
      rescue => ex
        $STDERR << "dot test failed, probably not installed\n#{ex.message}"
      end
    end

  end # class DocumentationTest
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
yargi-0.1.2 test/yargi/documentation_test.rb
yargi-0.1.0 test/yargi/documentation_test.rb
yargi-0.1.1 test/yargi/documentation_test.rb