metric_adapter 0.0.2 → 0.0.3

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.
@@ -12,25 +12,12 @@ module MetricAdapter
12
12
  create_metric(hash_key, node_a, node_b)
13
13
  end
14
14
  end
15
-
15
+
16
16
  metrics.flatten
17
17
  end
18
18
 
19
19
  private
20
-
21
- def metrics_for_hash(hash_key, score)
22
- nodes = flay.hashes[hash_key]
23
- is_identical =
24
20
 
25
- location = method_location(signature)
26
- message = "Flog: #{score.round(2)}"
27
-
28
- metric = Metric.new(location, signature, message)
29
- metric.score = score
30
-
31
- metric
32
- end
33
-
34
21
  def create_metric(hash_key, node_a, node_b)
35
22
  is_identical = flay.identical[hash_key]
36
23
  similarity = is_identical ? "identical" : "similar"
@@ -41,6 +28,8 @@ module MetricAdapter
41
28
  signature = ""
42
29
 
43
30
  metric = Metric.new(node_location(node_a), signature, message)
31
+ metric.score = score
32
+ metric
44
33
  end
45
34
 
46
35
  def node_location(node)
@@ -13,13 +13,14 @@ class FlayAdapterTest < MiniTest::Unit::TestCase
13
13
  assert_equal [], adapter.metrics
14
14
  end
15
15
 
16
- def test_flay_adapts_locations
16
+ def test_flay_generates_metrics_per_line
17
17
  adapter = flay_self
18
18
  flay = adapter.flay
19
- # For each set of similar nodes, it should generate all the permutations (nodes choose 2)
20
- expected_count = flay.hashes.map{|h, nodes| nodes ** 2}.inject{|n,m| n+m }
21
19
 
22
- assert_equal expected_count, adapter.metrics.length, "Each set of similar nodes should generate n^2 metrics"
20
+ # For each set of similar nodes, it should generate all the permutations
21
+ expected_count = flay.hashes.map{|h, nodes| nodes.permutation(2).count }.inject{|n,m| n+m }
22
+ count = adapter.metrics.length
23
+ assert_equal expected_count, count, "Each set of similar nodes should generate n! metrics"
23
24
  end
24
25
 
25
26
  def test_flay_adapts_locations
@@ -30,12 +31,19 @@ class FlayAdapterTest < MiniTest::Unit::TestCase
30
31
  assert metric.line != 0, "Line numbers should be captured (line:0 should not show up in flog)"
31
32
  end
32
33
 
34
+ def test_flay_adapts_scores
35
+ adapter = flay_self
36
+ scores = adapter.metrics.map(&:score)
37
+
38
+ assert scores.all?{|s| s > 0 }, "Expected all the scores to be populated. #{scores.inspect}"
39
+ end
40
+
33
41
  def test_flay_messages
34
42
  adapter = flay_self
35
43
  metric = adapter.metrics.first
36
44
  message = metric.message
37
45
 
38
- assert message =~ /flay/i, "Should reference flay: #{message.inspect}"
46
+ assert message =~ /flay/i, "Should reference flay: #{message.inspect}"
39
47
  assert message =~ /#{Regexp.escape __FILE__}:\d+/, "Should reference the a path: #{message.inspect}"
40
48
  end
41
49
 
@@ -47,6 +55,5 @@ class FlayAdapterTest < MiniTest::Unit::TestCase
47
55
  flay.analyze
48
56
 
49
57
  FlayAdapter.new(flay)
50
- end
51
-
58
+ end
52
59
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Adam Sanderson
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2013-06-26 00:00:00 -07:00
17
+ date: 2013-06-27 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies: []
20
20