assert-random 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{assert-random}
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Stewart Matheson"]
data/lib/assert-random.rb CHANGED
@@ -8,33 +8,43 @@ module AssertRandom
8
8
  results.push yield
9
9
  end
10
10
  assert_block("2 or more values match") { !same_values? results }
11
- #assert_block("results are in a sequence") { !in_sequence? results }
11
+ assert_block("Results are in a sequence") { !in_sequence? results }
12
12
  end
13
13
  end
14
14
 
15
15
 
16
16
  private
17
17
  def same_values?(results)
18
- last_result = results.shift
19
- results.each do |r|
20
- return true if(last_result == r)
18
+ results.each do
19
+ last_result = results.shift
20
+ results.each do |r|
21
+ return true if(last_result == r)
22
+ end
21
23
  end
22
24
  false
23
25
  end
24
26
 
25
- =begin
27
+
26
28
  def in_sequence?(results)
27
- last_result = results.shift
28
- diff = last_result - results.first
29
- results.each do |r|
30
- current_diff = r - last_result
31
- return false if(diff != current_diff)
32
- last_result = r
29
+ differences = Array.new
30
+ results.each do
31
+ last_result = results.shift
32
+ results.each do |r|
33
+ differences.push last_result - r
34
+ end
35
+ end
36
+ sorted_difference = {}
37
+ differences.each do |d|
38
+ if sorted_difference.has_key? d
39
+ sorted_difference[d] += 1
40
+ else
41
+ sorted_difference[d] = 1
42
+ end
33
43
  end
34
- true
44
+ return sorted_difference.size < 1
35
45
  end
36
- =end
37
-
46
+
47
+
38
48
  end
39
49
  end
40
50
 
@@ -34,15 +34,33 @@ class TestAssertRandom < Test::Unit::TestCase
34
34
  end
35
35
 
36
36
 
37
- =begin
38
37
  def test_fails_if_results_are_in_order
39
38
  assert_raise Test::Unit::AssertionFailedError do
40
39
  counter = 0
41
40
  assert_random do
42
- counter += 1
41
+ counter =+ 1
43
42
  end
44
43
  end
45
44
  end
46
- =end
47
-
45
+
46
+
47
+ def test_fails_if_results_are_in_order_by_tens
48
+ assert_raise Test::Unit::AssertionFailedError do
49
+ counter = 0
50
+ assert_random do
51
+ counter =+ 10
52
+ end
53
+ end
54
+ end
55
+
56
+
57
+ def test_fails_if_results_are_in_order_by_one_point_fours
58
+ assert_raise Test::Unit::AssertionFailedError do
59
+ counter = 0
60
+ assert_random do
61
+ counter =+ 1.4
62
+ end
63
+ end
64
+ end
65
+
48
66
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assert-random
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stewart Matheson