clusta 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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