Sha256: 0f9382e094aa063882cda599d57799f56b0b1cf86f48565556dc8b46e6d49cf0

Contents?: true

Size: 1.2 KB

Versions: 11

Compression:

Stored size: 1.2 KB

Contents

require 'rspec'
require 'abstractivator/cons'

describe Abstractivator::Cons do

  include Abstractivator::Cons

  describe '#empty_list' do
    it 'is a singleton' do
      expect(empty_list).to eql empty_list
    end
  end

  describe '#cons' do
    it 'creates a cons cell' do
      expect(cons(1, 2)).to eql [1,2 ]
    end
  end

  describe '#head' do
    it 'returns the head' do
      cell = cons(1, 2)
      expect(cell.head).to eql 1
    end
  end

  describe '#tail' do
    it 'returns the tail' do
      cell = cons(1, 2)
      expect(cell.tail).to eql 2
    end
  end

  describe '#enum_to_list' do
    it 'returns the list form of an enumerable' do
      expect(enum_to_list([])).to eql empty_list
      expect(enum_to_list([1,2,3])).to eql [1, [2, [3, empty_list]]]
    end
  end

  describe '#list_to_enum' do
    it 'returns the enumerable form of a list' do
      expect(list_to_enum(empty_list).to_a).to eql []
      expect(list_to_enum(cons(1, cons(2, cons(3, empty_list)))).to_a).to eql [1, 2, 3]
    end
  end

  describe '#empty?' do
    it 'determines whether or not the list is empty' do
      expect(enum_to_list([1]).empty?).to be false
      expect(empty_list.empty?).to be true
    end
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
abstractivator-0.20.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.19.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.18.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.17.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.16.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.15.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.14.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.13.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.12.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.11.0 spec/lib/abstractivator/cons_spec.rb
abstractivator-0.10.0 spec/lib/abstractivator/cons_spec.rb