brainfuck 0.1.2 → 0.2.0

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.
@@ -1,81 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Brainfuck
4
- describe Stack do
5
-
6
- describe "#current" do
7
- it 'returns the current value of the stack' do
8
- subject.current.should == 0
9
- end
10
- end
11
-
12
- describe "#fwd" do
13
- it 'advanced the pointer' do
14
- subject.fwd
15
- subject.instance_variable_get(:@pointer).should == 1
16
- end
17
- end
18
-
19
- describe "#bwd" do
20
- it 'decreases the pointer' do
21
- subject.instance_variable_set(:@pointer, 4)
22
- subject.bwd
23
- subject.instance_variable_get(:@pointer).should == 3
24
- end
25
- context "if the pointer is trying to get below zero" do
26
- it 'raises' do
27
- subject.instance_variable_set(:@pointer, 0)
28
- expect {
29
- subject.bwd
30
- }.to raise_error(RuntimeError, "Tried to access cell -1.")
31
- end
32
- end
33
- end
34
-
35
- describe "#inc" do
36
- it 'increases the current cell' do
37
- subject.instance_variable_set(:@stack, [4])
38
- subject.inc
39
- subject.current.should == 5
40
- end
41
- end
42
-
43
- describe "#dec" do
44
- it 'decreases the current cell' do
45
- subject.instance_variable_set(:@stack, [4])
46
- subject.dec
47
- subject.current.should == 3
48
- end
49
- end
50
-
51
- describe "#puts" do
52
- it 'prints the current character' do
53
- subject.stub_chain('current.chr').and_return 'A'
54
- $stdout.should_receive(:print).with 'A'
55
- subject.puts
56
- end
57
- end
58
-
59
- describe "#gets" do
60
- it 'prints the current character' do
61
- subject.should_receive(:get_character).and_return 97
62
- subject.gets
63
- subject.current.should == 97
64
- end
65
- end
66
-
67
- describe "#to_a" do
68
- it 'returns the stack array' do
69
- subject.to_a.should == [0]
70
- end
71
- end
72
-
73
- describe "#clear" do
74
- it 'clears the stack' do
75
- subject.should_receive(:initialize)
76
- subject.clear
77
- end
78
- end
79
-
80
- end
81
- end
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Brainfuck do
4
-
5
- describe ".run" do
6
- it 'runs the code and returns the stack' do
7
- code = double('code')
8
- parsed = double('parsed')
9
- ast = [double('node'), double('node')]
10
-
11
- Brainfuck::Interpreter.stack.should_receive(:clear)
12
-
13
- Brainfuck::Parser.should_receive(:clean).with("code").and_return(code)
14
- Brainfuck::Parser.stub_chain('new.parse').with(code).and_return parsed
15
- Brainfuck::Interpreter.stub_chain('new.apply').with(parsed).and_return ast
16
-
17
- ast.each { |n| n.should_receive(:eval) }
18
-
19
- subject.run("code").should === Brainfuck::Interpreter.stack.to_a
20
- end
21
- end
22
-
23
- end
@@ -1,18 +0,0 @@
1
- require 'bundler'
2
- require 'simplecov'
3
- SimpleCov.start do
4
- add_group "Lib", "lib"
5
- end
6
-
7
- begin
8
- Bundler.setup(:default, :development)
9
- rescue Bundler::BundlerError => e
10
- $stderr.puts e.message
11
- $stderr.puts "Run `bundle install` to install missing gems"
12
- exit e.status_code
13
- end
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
16
-
17
- require 'brainfuck'
18
- require 'rspec'