Sha256: 757b956822b18017f98da859cad1ba045eee496b592f0da6736720e2b550602a

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

#!/usr/bin/env ruby

require 'graphshaper'

if ARGV.length == 0 || ARGV[0] == "--help"
  puts "  Usage: graphshaper SIZE"
elsif ARGV[0].to_i < 21
  puts "Please choose a size of at least 21"
else
  number_of_vertices = ARGV[0].to_i
  inner_vertices = 20
  
  edge_output_file = File.new "edges.csv", "w"
  vertex_output_file = File.new "vertices.csv", "w"
  
  start_time = Time.now
  graph = Graphshaper::UndirectedGraph.without_orphans_with_order_of inner_vertices, edge_creation_logger: edge_output_file, vertex_creation_logger: vertex_output_file
  (number_of_vertices - inner_vertices).times do
    graph.add_vertex do |preferential_attachment|
      preferential_attachment > rand
    end
  end
  end_time = Time.now
  
  ellapsed_time = end_time - start_time
  
  puts "#{graph.order} vertices (saved to vertices.csv)"
  puts "#{graph.size} edges (saved to edges.csv)"
  
  if ellapsed_time < 2
    puts "Generated in about one second"
  elsif ellapsed_time < 60
    puts "Generated in about #{ellapsed_time.round} seconds"
  else
    puts "Generated in about #{ellapsed_time.round / 60} minutes and #{ellapsed_time.round % 60} seconds"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
graphshaper-0.1 bin/graphshaper