datastructures 0.1.1 → 0.1.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.
data/README.md CHANGED
@@ -13,7 +13,7 @@ A collection of data structures in Ruby, made for my [data structures challenge]
13
13
  [travis]: https://travis-ci.org/Blahah/datastructures
14
14
  [gemnasium]: https://gemnasium.com/Blahah/datastructures
15
15
  [codeclimate]: https://codeclimate.com/github/Blahah/datastructures
16
- [coveralls]: https://coveralls.io/repo/Blahah/datastructures
16
+ [coveralls]: https://coveralls.io/r/Blahah/datastructures
17
17
 
18
18
  ## Installation
19
19
 
@@ -4,7 +4,7 @@ module DataStructures
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 1
7
- PATCH = 1
7
+ PATCH = 2
8
8
  BUILD = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.');
@@ -1,5 +1,12 @@
1
- require 'test/unit'
2
- require 'datastructures'
1
+ require 'simplecov'
3
2
  require 'coveralls'
4
3
 
5
- Coveralls.wear!
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+ SimpleCov.start
9
+
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+ require 'datastructures'
@@ -1,43 +1,76 @@
1
- require 'test/unit'
2
- require 'datastructures'
1
+ require 'test_datastructures'
3
2
 
4
3
  class TestQueue < Test::Unit::TestCase
5
4
 
6
- def test_queue
5
+ context "Queue" do
7
6
 
8
- # we can create a queue
9
- queue = DataStructures::Queue.new
7
+ setup do
8
+ @queue = DataStructures::Queue.new
9
+ end
10
+
11
+ should "be able to create a new instance" do
12
+ @queue = DataStructures::Queue.new
13
+ end
14
+
15
+ should "begin empty" do
16
+ assert @queue.empty?
17
+ assert @queue.size == 0
18
+ end
19
+
20
+ should "raise an error on underflow" do
21
+ assert_raise RuntimeError, "Queue underflow: nothing to dequeue" do
22
+ @queue.dequeue
23
+ end
24
+ end
10
25
 
11
- # should start empty
12
- assert queue.empty?
13
- assert queue.size == 0
26
+ should "stop being empty when first item added" do
27
+ @queue.enqueue('first')
28
+ assert !@queue.empty?
29
+ assert @queue.size == 1
30
+ end
14
31
 
15
- # underflow raises error
16
- assert_raise RuntimeError, "Queue underflow: nothing to dequeue" do
17
- queue.dequeue
32
+ should "increment size on enqueueing" do
33
+ @queue.enqueue('first')
34
+ @queue.enqueue('second')
35
+ assert @queue.size == 2
18
36
  end
19
37
 
20
- # enqueueing increases size, removes emptiness
21
- queue.enqueue('first')
22
- assert !queue.empty?
23
- assert queue.size == 1
38
+ should "respond to size and length" do
39
+ @queue.enqueue('first')
40
+ assert @queue.size == @queue.length
41
+ end
24
42
 
25
- # more enqueueing just increments size
26
- queue.enqueue('second')
27
- assert queue.size == 2
43
+ should "have first item in at the front" do
44
+ @queue.enqueue('first')
45
+ @queue.enqueue('second')
46
+ assert @queue.front == 'first'
47
+ end
28
48
 
29
- # dequeueing returns first in, reduces size
30
- assert queue.dequeue == 'first'
31
- assert queue.size == 1
49
+ should "have last item in at the back" do
50
+ @queue.enqueue('first')
51
+ @queue.enqueue('second')
52
+ assert @queue.back == 'second'
53
+ end
32
54
 
33
- # more dequeueing empties the queue
34
- assert queue.dequeue == 'second'
35
- assert queue.size == 0
36
- assert queue.empty?
55
+ should "return first in queue and get smaller on dequeueing" do
56
+ @queue.enqueue('first')
57
+ @queue.enqueue('second')
58
+ assert @queue.dequeue == 'first'
59
+ assert @queue.size == 1
60
+ end
61
+
62
+ should "have first and last items equal when length is one" do
63
+ @queue.enqueue('first')
64
+ assert @queue.size == 1
65
+ assert @queue.front == @queue.back
66
+ end
37
67
 
38
- # trying to continue gives underflow
39
- assert_raise RuntimeError, "Queue underflow: nothing to dequeue" do
40
- queue.dequeue
68
+ should "become empty when last item dequeued" do
69
+ @queue.enqueue('first')
70
+ @queue.enqueue('second')
71
+ 2.times{ @queue.dequeue }
72
+ assert @queue.size == 0
73
+ assert @queue.empty?
41
74
  end
42
75
 
43
76
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datastructures
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,38 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: simplecov
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.7.1
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.7.1
46
+ - !ruby/object:Gem::Dependency
47
+ name: shoulda
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 3.5.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 3.5.0
30
62
  - !ruby/object:Gem::Dependency
31
63
  name: coveralls
32
64
  requirement: !ruby/object:Gem::Requirement