clusta 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/README.rdoc +66 -0
  2. data/VERSION +1 -1
  3. data/bin/clusta +1 -28
  4. data/lib/clusta.rb +12 -3
  5. data/lib/clusta/geometry.rb +53 -8
  6. data/lib/clusta/geometry/all.rb +3 -0
  7. data/lib/clusta/geometry/assortativity.rb +2 -2
  8. data/lib/clusta/geometry/degree.rb +3 -1
  9. data/lib/clusta/geometry/{edge_degree_pair.rb → degree_pair.rb} +3 -3
  10. data/lib/clusta/geometry/directed/degree.rb +3 -1
  11. data/lib/clusta/geometry/directed/{edge_degree_pair.rb → degree_pair.rb} +4 -3
  12. data/lib/clusta/geometry/directed/edge.rb +4 -2
  13. data/lib/clusta/geometry/directed/{arrow.rb → neighbor.rb} +1 -1
  14. data/lib/clusta/geometry/directed/neighborhood.rb +31 -0
  15. data/lib/clusta/geometry/edge.rb +6 -4
  16. data/lib/clusta/geometry/element.rb +10 -117
  17. data/lib/clusta/geometry/{arrow.rb → neighbor.rb} +3 -3
  18. data/lib/clusta/geometry/neighborhood.rb +41 -0
  19. data/lib/clusta/geometry/vertex.rb +4 -1
  20. data/lib/clusta/runner.rb +101 -4
  21. data/lib/clusta/schema.rb +100 -0
  22. data/lib/clusta/serialization.rb +63 -0
  23. data/lib/clusta/serialization/json.rb +86 -0
  24. data/lib/clusta/serialization/tsv.rb +81 -0
  25. data/lib/clusta/transforms.rb +59 -26
  26. data/lib/clusta/transforms/{edge_degree_pairs_to_assortativities.rb → degree_pairs_to_assortativities.rb} +7 -3
  27. data/lib/clusta/transforms/edges_to_degrees.rb +5 -0
  28. data/lib/clusta/transforms/{edges_to_vertex_arrows.rb → edges_to_neighborhoods.rb} +11 -6
  29. data/lib/clusta/transforms/import.rb +6 -0
  30. data/lib/clusta/transforms/neighborhoods_to_degree_pairs.rb +70 -0
  31. data/lib/clusta/transforms/pm3d.rb +46 -0
  32. data/lib/clusta/transforms/prune_edges.rb +34 -0
  33. data/spec/clusta/schema_spec.rb +36 -0
  34. data/spec/clusta/serialization/json_spec.rb +133 -0
  35. data/spec/clusta/serialization/tsv_spec.rb +133 -0
  36. data/spec/clusta/serialization_spec.rb +27 -0
  37. data/spec/clusta/transforms/degree_pairs_to_assortativities_spec.rb +13 -0
  38. data/spec/clusta/transforms/{edges_to_vertex_arrows_spec.rb → edges_to_neighborhoods_spec.rb} +5 -5
  39. data/spec/clusta/transforms/import_spec.rb +9 -0
  40. data/spec/clusta/transforms/neighborhoods_to_degree_pairs_spec.rb +21 -0
  41. data/spec/clusta/transforms/prune_edges_spec.rb +22 -0
  42. data/spec/data/assortativities/directed.tsv +4 -0
  43. data/spec/data/assortativities/undirected.tsv +7 -0
  44. data/spec/data/degree_pairs/directed.tsv +10 -0
  45. data/spec/data/degree_pairs/undirected.tsv +18 -0
  46. data/spec/data/external/vertices.tsv +9 -0
  47. data/spec/data/imports/vertices.labeled.tsv +9 -0
  48. data/spec/data/neighborhoods/directed.unweighted.tsv +7 -0
  49. data/spec/data/neighborhoods/directed.weighted.tsv +7 -0
  50. data/spec/data/neighborhoods/undirected.unweighted.tsv +9 -0
  51. data/spec/data/neighborhoods/undirected.weighted.tsv +9 -0
  52. data/spec/data/pruned_edges/directed.unweighted.tsv +1 -0
  53. data/spec/data/pruned_edges/directed.weighted.tsv +3 -0
  54. data/spec/data/pruned_edges/undirected.unweighted.tsv +1 -0
  55. data/spec/data/pruned_edges/undirected.weighted.tsv +3 -0
  56. data/spec/support/transforms_spec_helper.rb +5 -1
  57. metadata +47 -23
  58. data/lib/clusta/geometry/directed/vertex_arrows.rb +0 -25
  59. data/lib/clusta/geometry/vertex_arrows.rb +0 -45
  60. data/lib/clusta/transforms/vertex_arrows_to_edge_degree_pairs.rb +0 -63
  61. data/spec/clusta/geometry/element_spec.rb +0 -191
  62. data/spec/data/vertex_arrows/directed.unweighted.tsv +0 -7
  63. data/spec/data/vertex_arrows/directed.weighted.tsv +0 -7
  64. data/spec/data/vertex_arrows/undirected.unweighted.tsv +0 -9
  65. data/spec/data/vertex_arrows/undirected.weighted.tsv +0 -9
@@ -0,0 +1,133 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clusta::Serialization::TSV do
4
+
5
+ def tsv_serializable_wrapper_class
6
+ Class.new.tap do |c|
7
+ c.send(:include, Clusta::Schema)
8
+ c.send(:include, Clusta::Serialization)
9
+ c.send(:include, Clusta::Serialization::TSV)
10
+ end
11
+ end
12
+
13
+ before do
14
+ @root = tsv_serializable_wrapper_class
15
+ @root.key :foo
16
+
17
+ @child = tsv_serializable_wrapper_class
18
+ @child.key :baz
19
+
20
+ @child.set_stream_name 'Child'
21
+ end
22
+
23
+ describe "processing inputs" do
24
+
25
+ it "should assign declared fields" do
26
+ instance = @root.new("foovalue")
27
+ instance.foo.should == "foovalue"
28
+ end
29
+
30
+ it "should parse and assign a declared child element field" do
31
+ @root.field :child, :type => :geometry
32
+ instance = @root.new("foovalue", "Child;bazvalue")
33
+ instance.foo.should == "foovalue"
34
+ instance.child.class.should == @child
35
+ instance.child.baz.should == "bazvalue"
36
+ end
37
+
38
+ it "should assign a value to an optional field only if it's present" do
39
+ @root.field :bar, :optional => true
40
+
41
+ instance = @root.new("foovalue")
42
+ instance.foo.should == "foovalue"
43
+ instance.bar.should == nil
44
+
45
+ instance = @root.new("foovalue", "barvalue")
46
+ instance.foo.should == "foovalue"
47
+ instance.bar.should == "barvalue"
48
+ end
49
+
50
+ it "should stash extra arguments it receives at initialization" do
51
+ instance = @root.new("foovalue", "barvalue")
52
+ instance.foo.should == "foovalue"
53
+ instance.extra_inputs.size.should == 1
54
+ instance.extra_inputs[0].should == "barvalue"
55
+ end
56
+
57
+ it "should parse and stash structured child elements in the extra arguments it receives at initialization" do
58
+ instance = @root.new("foovalue", "Child;bazvalue")
59
+ instance.foo.should == "foovalue"
60
+ instance.extra_inputs.size.should == 1
61
+ instance.extra_inputs[0].class.should == @child
62
+ instance.extra_inputs[0].baz.should == "bazvalue"
63
+ end
64
+
65
+ end
66
+
67
+ describe "serializing" do
68
+
69
+ it "returns an array appropriate for Wukong" do
70
+ output = @root.new("foovalue").to_flat
71
+ output[0].should == @root.stream_name
72
+ output[1].should == "foovalue"
73
+ end
74
+
75
+ it "returns an array with an optional field at the end only if it has a value" do
76
+ @root.field :bar, :optional => true
77
+ output1 = @root.new("foovalue").to_flat
78
+ output2 = @root.new("foovalue", "barvalue").to_flat
79
+
80
+ output1.size.should == 2
81
+ output1[0].should == @root.stream_name
82
+ output1[1].should == 'foovalue'
83
+
84
+ output2.size.should == 3
85
+ output2[0].should == @root.stream_name
86
+ output2[1].should == 'foovalue'
87
+ output2[2].should == 'barvalue'
88
+ end
89
+
90
+ it "returns an array including any extra inputs it received" do
91
+ output = @root.new("foovalue", "barvalue").to_flat
92
+ output.size.should == 3
93
+ output[0].should == @root.stream_name
94
+ output[1].should == "foovalue"
95
+ output[2].should == "barvalue"
96
+ end
97
+
98
+ it "returns an array including any extra inputs it received as well as optional inputs" do
99
+ @root.field :bar, :optional => true
100
+
101
+ instance = @root.new("foovalue", "barvalue", "extra1", "extra2")
102
+ instance.foo.should == 'foovalue'
103
+ instance.bar.should == 'barvalue'
104
+ instance.extra_inputs.should == ['extra1', 'extra2']
105
+
106
+ instance = @root.new("foovalue")
107
+ instance.foo.should == 'foovalue'
108
+ instance.bar.should be_nil
109
+ instance.extra_inputs.should be_empty
110
+ end
111
+
112
+ it "returns an array with properly serialized geometry fields" do
113
+ @root.field :bar, :type => :geometry
114
+ output = @root.new("foovalue", "Child;bazvalue").to_flat
115
+ output.size.should == 3
116
+ output[0].should == @root.stream_name
117
+ output[1].should == "foovalue"
118
+ output[2].should == "Child;bazvalue"
119
+ end
120
+
121
+ it "returns an array with properly serialized geometry fields when they were given as extra inputs" do
122
+ output = @root.new("foovalue", "Child;bazvalue").to_flat
123
+ output.size.should == 3
124
+ output[0].should == @root.stream_name
125
+ output[1].should == "foovalue"
126
+ output[2].should == "Child;bazvalue"
127
+ end
128
+
129
+
130
+
131
+ end
132
+
133
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clusta::Serialization do
4
+
5
+ before do
6
+ @root = Class.new
7
+ @root.send(:include, Clusta::Serialization)
8
+ end
9
+
10
+ it "defines a stream_name method for its class" do
11
+ @root.stream_name.class.should == String
12
+ end
13
+
14
+ it "defines a stream_name method for its instances" do
15
+ @root.new.stream_name.should == @root.stream_name
16
+ end
17
+
18
+ it "allows for abbreviating its stream name" do
19
+ @root.abbreviate 'r'
20
+ end
21
+
22
+ it "allows for setting the stream name" do
23
+ @root.set_stream_name 'root'
24
+ @root.stream_name.should == 'root'
25
+ end
26
+
27
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clusta::Transforms::DegreePairsToAssortativities do
4
+
5
+ it "undirected degree pairs" do
6
+ transforming("degree_pairs/undirected.tsv", :with => "degree_pairs_to_assortativities").should have_output("assortativities/undirected.tsv")
7
+ end
8
+
9
+ it "handles directed degree pairs" do
10
+ transforming("degree_pairs/directed.tsv", :with => "degree_pairs_to_assortativities").should have_output("assortativities/directed.tsv")
11
+ end
12
+
13
+ end
@@ -1,21 +1,21 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Clusta::Transforms::EdgesToVertexArrows do
3
+ describe Clusta::Transforms::EdgesToNeighborhoods do
4
4
 
5
5
  it "handles undirected, unweighted edges" do
6
- transforming("edges/undirected.unweighted.tsv", :with => "edges_to_vertex_arrows").should have_output("vertex_arrows/undirected.unweighted.tsv")
6
+ transforming("edges/undirected.unweighted.tsv", :with => "edges_to_neighborhoods").should have_output("neighborhoods/undirected.unweighted.tsv")
7
7
  end
8
8
 
9
9
  it "handles undirected, weighted edges" do
10
- transforming("edges/undirected.weighted.tsv", :with => "edges_to_vertex_arrows").should have_output("vertex_arrows/undirected.weighted.tsv")
10
+ transforming("edges/undirected.weighted.tsv", :with => "edges_to_neighborhoods").should have_output("neighborhoods/undirected.weighted.tsv")
11
11
  end
12
12
 
13
13
  it "handles directed, unweighted edges" do
14
- transforming("edges/directed.unweighted.tsv", :with => "edges_to_vertex_arrows").should have_output("vertex_arrows/directed.unweighted.tsv")
14
+ transforming("edges/directed.unweighted.tsv", :with => "edges_to_neighborhoods").should have_output("neighborhoods/directed.unweighted.tsv")
15
15
  end
16
16
 
17
17
  it "handles directed, weighted edges" do
18
- transforming("edges/directed.weighted.tsv", :with => "edges_to_vertex_arrows").should have_output("vertex_arrows/directed.weighted.tsv")
18
+ transforming("edges/directed.weighted.tsv", :with => "edges_to_neighborhoods").should have_output("neighborhoods/directed.weighted.tsv")
19
19
  end
20
20
 
21
21
  end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clusta::Transforms::Import do
4
+
5
+ it "handles undirected, unweighted edges" do
6
+ transforming("external/vertices.tsv", :with => "import", :args => '--as=Vertex').should have_output("imports/vertices.labeled.tsv")
7
+ end
8
+
9
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clusta::Transforms::NeighborhoodsToDegreePairs do
4
+
5
+ it "handles undirected, unweighted neighborhoods" do
6
+ transforming("neighborhoods/undirected.unweighted.tsv", :with => "neighborhoods_to_degree_pairs").should have_output("degree_pairs/undirected.tsv")
7
+ end
8
+
9
+ it "handles undirected, weighted neighborhoods" do
10
+ transforming("neighborhoods/undirected.weighted.tsv", :with => "neighborhoods_to_degree_pairs").should have_output("degree_pairs/undirected.tsv")
11
+ end
12
+
13
+ it "handles directed, unweighted neighborhoods" do
14
+ transforming("neighborhoods/directed.unweighted.tsv", :with => "neighborhoods_to_degree_pairs").should have_output("degree_pairs/directed.tsv")
15
+ end
16
+
17
+ it "handles directed, weighted neighborhoods" do
18
+ transforming("neighborhoods/directed.weighted.tsv", :with => "neighborhoods_to_degree_pairs").should have_output("degree_pairs/directed.tsv")
19
+ end
20
+
21
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clusta::Transforms::PruneEdges do
4
+
5
+ it "handles undirected, unweighted edges" do
6
+ transforming("edges/undirected.unweighted.tsv", :with => "prune_edges", :args => '--min_weight=0.5 --max_weight=0.8').should have_output("pruned_edges/undirected.unweighted.tsv")
7
+ end
8
+
9
+ it "handles undirected, weighted edges" do
10
+ transforming("edges/undirected.weighted.tsv", :with => "prune_edges", :args => '--min_weight=0.5 --max_weight=0.8').should have_output("pruned_edges/undirected.weighted.tsv")
11
+ end
12
+
13
+ it "handles directed, unweighted edges" do
14
+ transforming("edges/directed.unweighted.tsv", :with => "prune_edges", :args => '--min_weight=0.5 --max_weight=0.8').should have_output("pruned_edges/directed.unweighted.tsv")
15
+ end
16
+
17
+ it "handles directed, weighted edges" do
18
+ transforming("edges/directed.weighted.tsv", :with => "prune_edges", :args => '--min_weight=0.5 --max_weight=0.8').should have_output("pruned_edges/directed.weighted.tsv")
19
+ end
20
+
21
+
22
+ end
@@ -0,0 +1,4 @@
1
+ Assortativity 1 1 1
2
+ Assortativity 1 2 5
3
+ Assortativity 2 1 3
4
+ Assortativity 2 2 1
@@ -0,0 +1,7 @@
1
+ Assortativity 1 2 1
2
+ Assortativity 1 3 1
3
+ Assortativity 2 1 1
4
+ Assortativity 2 2 4
5
+ Assortativity 2 3 5
6
+ Assortativity 3 1 1
7
+ Assortativity 3 2 5
@@ -0,0 +1,10 @@
1
+ DirectedDegreePair 1 4 1 0 0 1
2
+ DirectedDegreePair 2 1 2 0 0 1
3
+ DirectedDegreePair 2 3 2 0 0 1
4
+ DirectedDegreePair 4 5 1 0 0 2
5
+ DirectedDegreePair 5 6 2 0 0 1
6
+ DirectedDegreePair 5 7 2 0 0 2
7
+ DirectedDegreePair 6 8 1 0 0 2
8
+ DirectedDegreePair 7 5 1 0 0 2
9
+ DirectedDegreePair 8 7 1 0 0 2
10
+ DirectedDegreePair 9 8 1 0 0 2
@@ -0,0 +1,18 @@
1
+ DegreePair 1 2 2 2
2
+ DegreePair 1 4 2 2
3
+ DegreePair 2 1 2 2
4
+ DegreePair 2 3 2 1
5
+ DegreePair 3 2 1 2
6
+ DegreePair 4 1 2 2
7
+ DegreePair 4 5 2 3
8
+ DegreePair 5 4 3 2
9
+ DegreePair 5 6 3 2
10
+ DegreePair 5 7 3 2
11
+ DegreePair 6 5 2 3
12
+ DegreePair 6 8 2 3
13
+ DegreePair 7 5 2 3
14
+ DegreePair 7 8 2 3
15
+ DegreePair 8 6 3 2
16
+ DegreePair 8 7 3 2
17
+ DegreePair 8 9 3 1
18
+ DegreePair 9 8 1 3
@@ -0,0 +1,9 @@
1
+ 1
2
+ 2
3
+ 3
4
+ 4
5
+ 5
6
+ 6
7
+ 7
8
+ 8
9
+ 9
@@ -0,0 +1,9 @@
1
+ Vertex 1
2
+ Vertex 2
3
+ Vertex 3
4
+ Vertex 4
5
+ Vertex 5
6
+ Vertex 6
7
+ Vertex 7
8
+ Vertex 8
9
+ Vertex 9
@@ -0,0 +1,7 @@
1
+ DirectedNeighborhood 1 DirectedNeighbor;2
2
+ DirectedNeighborhood 3 DirectedNeighbor;2
3
+ DirectedNeighborhood 4 DirectedNeighbor;1
4
+ DirectedNeighborhood 5 DirectedNeighbor;4 DirectedNeighbor;7
5
+ DirectedNeighborhood 6 DirectedNeighbor;5
6
+ DirectedNeighborhood 7 DirectedNeighbor;5 DirectedNeighbor;8
7
+ DirectedNeighborhood 8 DirectedNeighbor;6 DirectedNeighbor;9
@@ -0,0 +1,7 @@
1
+ DirectedNeighborhood 1 DirectedNeighbor;2;0.5
2
+ DirectedNeighborhood 3 DirectedNeighbor;2;0.1
3
+ DirectedNeighborhood 4 DirectedNeighbor;1;0.8
4
+ DirectedNeighborhood 5 DirectedNeighbor;4;0.9 DirectedNeighbor;7;0.2
5
+ DirectedNeighborhood 6 DirectedNeighbor;5;0.4
6
+ DirectedNeighborhood 7 DirectedNeighbor;5;0.3 DirectedNeighbor;8;0.0
7
+ DirectedNeighborhood 8 DirectedNeighbor;6;0.7 DirectedNeighbor;9;1.0
@@ -0,0 +1,9 @@
1
+ Neighborhood 1 Neighbor;2 Neighbor;4
2
+ Neighborhood 2 Neighbor;1 Neighbor;3
3
+ Neighborhood 3 Neighbor;2
4
+ Neighborhood 4 Neighbor;1 Neighbor;5
5
+ Neighborhood 5 Neighbor;4 Neighbor;6 Neighbor;7
6
+ Neighborhood 6 Neighbor;5 Neighbor;8
7
+ Neighborhood 7 Neighbor;5 Neighbor;8
8
+ Neighborhood 8 Neighbor;6 Neighbor;7 Neighbor;9
9
+ Neighborhood 9 Neighbor;8
@@ -0,0 +1,9 @@
1
+ Neighborhood 1 Neighbor;2;0.5 Neighbor;4;0.8
2
+ Neighborhood 2 Neighbor;1;0.5 Neighbor;3;0.1
3
+ Neighborhood 3 Neighbor;2;0.1
4
+ Neighborhood 4 Neighbor;1;0.8 Neighbor;5;0.9
5
+ Neighborhood 5 Neighbor;4;0.9 Neighbor;6;0.4 Neighbor;7;0.3
6
+ Neighborhood 6 Neighbor;5;0.4 Neighbor;8;0.7
7
+ Neighborhood 7 Neighbor;5;0.3 Neighbor;8;0.0
8
+ Neighborhood 8 Neighbor;6;0.7 Neighbor;7;0.0 Neighbor;9;1.0
9
+ Neighborhood 9 Neighbor;8;1.0
@@ -0,0 +1,3 @@
1
+ DirectedEdge 1 2 0.5
2
+ DirectedEdge 4 1 0.8
3
+ DirectedEdge 8 6 0.7
@@ -0,0 +1,3 @@
1
+ Edge 1 2 0.5
2
+ Edge 1 4 0.8
3
+ Edge 6 8 0.7
@@ -35,8 +35,12 @@ module Clusta
35
35
  @options[:with] or raise SpecError.new("Must supply a transformation name with the :with option.")
36
36
  end
37
37
 
38
+ def args
39
+ @options[:args] || ''
40
+ end
41
+
38
42
  def command
39
- "#{clusta_bin} --run=local --transform=#{transform_name} --run=local #{@path} -"
43
+ "#{clusta_bin} --run=local --transform=#{transform_name} #{args} #{@path} -"
40
44
  end
41
45
 
42
46
  def output
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clusta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-04 00:00:00.000000000Z
12
+ date: 2012-03-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &18809420 !ruby/object:Gem::Requirement
16
+ requirement: &14646260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *18809420
24
+ version_requirements: *14646260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: diffy
27
- requirement: &18808980 !ruby/object:Gem::Requirement
27
+ requirement: &14645140 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *18808980
35
+ version_requirements: *14645140
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: wukong
38
- requirement: &18808560 !ruby/object:Gem::Requirement
38
+ requirement: &14643340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *18808560
46
+ version_requirements: *14643340
47
47
  description: Clusta is a Ruby library that implements network algorithms using Wukong. This
48
48
  means you can use and extend these algorithms on your laptop and seamlessly lift
49
49
  them into a Hadoop cluster when you're ready.
@@ -56,43 +56,67 @@ extra_rdoc_files: []
56
56
  files:
57
57
  - bin/clusta
58
58
  - lib/clusta.rb
59
+ - lib/clusta/geometry/neighborhood.rb
59
60
  - lib/clusta/geometry/vertex.rb
60
61
  - lib/clusta/geometry/element.rb
61
- - lib/clusta/geometry/vertex_arrows.rb
62
- - lib/clusta/geometry/directed/vertex_arrows.rb
62
+ - lib/clusta/geometry/directed/neighborhood.rb
63
63
  - lib/clusta/geometry/directed/edge.rb
64
- - lib/clusta/geometry/directed/arrow.rb
65
- - lib/clusta/geometry/directed/edge_degree_pair.rb
64
+ - lib/clusta/geometry/directed/degree_pair.rb
65
+ - lib/clusta/geometry/directed/neighbor.rb
66
66
  - lib/clusta/geometry/directed/degree.rb
67
+ - lib/clusta/geometry/all.rb
67
68
  - lib/clusta/geometry/edge.rb
68
- - lib/clusta/geometry/arrow.rb
69
- - lib/clusta/geometry/edge_degree_pair.rb
69
+ - lib/clusta/geometry/degree_pair.rb
70
70
  - lib/clusta/geometry/assortativity.rb
71
+ - lib/clusta/geometry/neighbor.rb
71
72
  - lib/clusta/geometry/degree.rb
72
73
  - lib/clusta/transforms.rb
73
74
  - lib/clusta/runner.rb
75
+ - lib/clusta/serialization.rb
76
+ - lib/clusta/schema.rb
74
77
  - lib/clusta/transforms/import.rb
75
- - lib/clusta/transforms/edge_degree_pairs_to_assortativities.rb
78
+ - lib/clusta/transforms/neighborhoods_to_degree_pairs.rb
79
+ - lib/clusta/transforms/prune_edges.rb
80
+ - lib/clusta/transforms/pm3d.rb
81
+ - lib/clusta/transforms/edges_to_neighborhoods.rb
76
82
  - lib/clusta/transforms/edges_to_degrees.rb
77
- - lib/clusta/transforms/vertex_arrows_to_edge_degree_pairs.rb
78
- - lib/clusta/transforms/edges_to_vertex_arrows.rb
83
+ - lib/clusta/transforms/degree_pairs_to_assortativities.rb
84
+ - lib/clusta/serialization/tsv.rb
85
+ - lib/clusta/serialization/json.rb
79
86
  - lib/clusta/geometry.rb
80
- - spec/clusta/geometry/element_spec.rb
87
+ - spec/clusta/schema_spec.rb
88
+ - spec/clusta/transforms/prune_edges_spec.rb
81
89
  - spec/clusta/transforms/edges_to_degrees_spec.rb
82
- - spec/clusta/transforms/edges_to_vertex_arrows_spec.rb
90
+ - spec/clusta/transforms/neighborhoods_to_degree_pairs_spec.rb
91
+ - spec/clusta/transforms/edges_to_neighborhoods_spec.rb
92
+ - spec/clusta/transforms/import_spec.rb
93
+ - spec/clusta/transforms/degree_pairs_to_assortativities_spec.rb
94
+ - spec/clusta/serialization/json_spec.rb
95
+ - spec/clusta/serialization/tsv_spec.rb
96
+ - spec/clusta/serialization_spec.rb
83
97
  - spec/spec_helper.rb
84
98
  - spec/support/transforms_spec_helper.rb
99
+ - spec/data/degree_pairs/undirected.tsv
100
+ - spec/data/degree_pairs/directed.tsv
85
101
  - spec/data/edges/directed.weighted.tsv
86
102
  - spec/data/edges/directed.unweighted.tsv
87
103
  - spec/data/edges/undirected.weighted.tsv
88
104
  - spec/data/edges/undirected.unweighted.tsv
89
- - spec/data/vertex_arrows/directed.weighted.tsv
90
- - spec/data/vertex_arrows/directed.unweighted.tsv
91
- - spec/data/vertex_arrows/undirected.weighted.tsv
92
- - spec/data/vertex_arrows/undirected.unweighted.tsv
105
+ - spec/data/external/vertices.tsv
93
106
  - spec/data/degrees/undirected.tsv
94
107
  - spec/data/degrees/directed.tsv
108
+ - spec/data/assortativities/undirected.tsv
109
+ - spec/data/assortativities/directed.tsv
110
+ - spec/data/neighborhoods/directed.weighted.tsv
111
+ - spec/data/neighborhoods/directed.unweighted.tsv
112
+ - spec/data/neighborhoods/undirected.weighted.tsv
113
+ - spec/data/neighborhoods/undirected.unweighted.tsv
95
114
  - spec/data/README.rdoc
115
+ - spec/data/imports/vertices.labeled.tsv
116
+ - spec/data/pruned_edges/directed.weighted.tsv
117
+ - spec/data/pruned_edges/directed.unweighted.tsv
118
+ - spec/data/pruned_edges/undirected.weighted.tsv
119
+ - spec/data/pruned_edges/undirected.unweighted.tsv
96
120
  - LICENSE
97
121
  - README.rdoc
98
122
  - VERSION