yarbf 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +29 -0
- data/.gitignore +1 -1
- data/.rubocop.yml +1168 -0
- data/bin/yarbf +2 -2
- data/lib/yarbf.rb +147 -73
- data/lib/yarbf/version.rb +1 -1
- data/test/bf/hello-world.bf +15 -0
- data/test/bf/pi.bf +229 -0
- data/test/bf/show-bf.bf +17 -0
- data/test/bf/square.bf +79 -0
- data/test/helper.rb +40 -0
- data/test/input/cell_size/pi-10 +0 -0
- data/test/input/cell_size/pi-11 +0 -0
- data/test/input/cell_size/pi-12 +0 -0
- data/test/input/cell_size/pi-16 +0 -0
- data/test/input/cell_size/pi-8 +0 -0
- data/test/input/cell_size/pi-9 +0 -0
- data/test/input/debug/hello-world +0 -0
- data/test/input/debug/pi +0 -0
- data/test/input/debug/show-bf +1 -0
- data/test/input/debug/square +0 -0
- data/test/input/hello-world +0 -0
- data/test/input/input_mode/show-bf-buffered +1 -0
- data/test/input/input_mode/show-bf-raw +1 -0
- data/test/input/pi +0 -0
- data/test/input/show-bf +1 -0
- data/test/input/square +0 -0
- data/test/input/wrap_around/pi +0 -0
- data/test/output/cell_size/pi-10-1 +1 -0
- data/test/output/cell_size/pi-10-2 +1 -0
- data/test/output/cell_size/pi-11-1 +1 -0
- data/test/output/cell_size/pi-11-2 +0 -0
- data/test/output/cell_size/pi-12-1 +1 -0
- data/test/output/cell_size/pi-12-2 +0 -0
- data/test/output/cell_size/pi-16-1 +1 -0
- data/test/output/cell_size/pi-16-2 +0 -0
- data/test/output/cell_size/pi-32-1 +1 -0
- data/test/output/cell_size/pi-32-2 +0 -0
- data/test/output/cell_size/pi-8-1 +0 -0
- data/test/output/cell_size/pi-8-2 +1 -0
- data/test/output/cell_size/pi-9-1 +1 -0
- data/test/output/cell_size/pi-9-2 +1 -0
- data/test/output/construct_program_units/hello-world-1 +106 -0
- data/test/output/construct_program_units/pi-1 +648 -0
- data/test/output/construct_program_units/show-bf-1 +49 -0
- data/test/output/construct_program_units/square-1 +191 -0
- data/test/output/debug/hello-world-1 +1 -0
- data/test/output/debug/hello-world-2 +1 -0
- data/test/output/debug/pi-1 +0 -0
- data/test/output/debug/pi-2 +1 -0
- data/test/output/debug/show-bf-1 +1 -0
- data/test/output/debug/show-bf-2 +1 -0
- data/test/output/debug/square-1 +101 -0
- data/test/output/debug/square-2 +1 -0
- data/test/output/hello-world-1 +1 -0
- data/test/output/hello-world-2 +0 -0
- data/test/output/input_mode/show-bf-buffered-1 +1 -0
- data/test/output/input_mode/show-bf-buffered-2 +0 -0
- data/test/output/input_mode/show-bf-raw-1 +0 -0
- data/test/output/input_mode/show-bf-raw-2 +1 -0
- data/test/output/match_brackets/hello-world-1 +106 -0
- data/test/output/match_brackets/pi-1 +648 -0
- data/test/output/match_brackets/show-bf-1 +49 -0
- data/test/output/match_brackets/square-1 +191 -0
- data/test/output/pi-1 +0 -0
- data/test/output/pi-2 +1 -0
- data/test/output/show-bf-1 +1 -0
- data/test/output/show-bf-2 +0 -0
- data/test/output/square-1 +101 -0
- data/test/output/square-2 +0 -0
- data/test/output/wrap_around/pi-1 +1 -0
- data/test/output/wrap_around/pi-2 +0 -0
- data/test/test_bf_interpreter.rb +116 -0
- data/test/test_cell_size.rb +29 -0
- data/test/test_debug.rb +25 -0
- data/test/test_default.rb +19 -0
- data/test/test_input_mode.rb +29 -0
- data/test/test_wrap_around.rb +25 -0
- data/yarbf.gemspec +1 -1
- metadata +76 -2
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper' # for TestBase
|
2
|
+
|
3
|
+
class TestCellSize < TestBase
|
4
|
+
def setup
|
5
|
+
super
|
6
|
+
@input_dir = File.join(@input_dir, 'cell_size')
|
7
|
+
@output_dir = File.join(@output_dir, 'cell_size')
|
8
|
+
end
|
9
|
+
|
10
|
+
# test 'cell_size' option
|
11
|
+
def test_cell_size
|
12
|
+
Dir.foreach(@input_dir) do |filename|
|
13
|
+
next if filename.eql?('.') || filename.eql?('..')
|
14
|
+
|
15
|
+
input = File.join(@input_dir, filename)
|
16
|
+
next if File.directory?(input)
|
17
|
+
|
18
|
+
# input filename must match this pattern
|
19
|
+
refute_nil(/(.*)-([1-9]\d*)$/.match(filename))
|
20
|
+
filename, size = $1, $2
|
21
|
+
|
22
|
+
bf_src = File.join(@bf_src_sir, "#{filename}.bf")
|
23
|
+
stdout = File.join(@output_dir, "#{filename}-#{size}-1")
|
24
|
+
stderr = File.join(@output_dir, "#{filename}-#{size}-2")
|
25
|
+
|
26
|
+
do_test(bf_src, "-s #{size}", input, stdout, stderr)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/test/test_debug.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'helper' # for TestBase
|
2
|
+
|
3
|
+
class TestDebug < TestBase
|
4
|
+
def setup
|
5
|
+
super
|
6
|
+
@input_dir = File.join(@input_dir, 'debug')
|
7
|
+
@output_dir = File.join(@output_dir, 'debug')
|
8
|
+
end
|
9
|
+
|
10
|
+
# test 'debug' switch
|
11
|
+
def test_debug
|
12
|
+
Dir.foreach(@input_dir) do |filename|
|
13
|
+
next if filename.eql?('.') || filename.eql?('..')
|
14
|
+
|
15
|
+
input = File.join(@input_dir, filename)
|
16
|
+
next if File.directory?(input)
|
17
|
+
|
18
|
+
bf_src = File.join(@bf_src_sir, "#{filename}.bf")
|
19
|
+
stdout = File.join(@output_dir, "#{filename}-1")
|
20
|
+
stderr = File.join(@output_dir, "#{filename}-2")
|
21
|
+
|
22
|
+
do_test(bf_src, '-d', input, stdout, stderr)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'helper' # for TestBase
|
2
|
+
|
3
|
+
class TestDefault < TestBase
|
4
|
+
# test default mode
|
5
|
+
def test_default
|
6
|
+
Dir.foreach(@input_dir) do |filename|
|
7
|
+
next if filename.eql?('.') || filename.eql?('..')
|
8
|
+
|
9
|
+
input = File.join(@input_dir, filename)
|
10
|
+
next if File.directory?(input)
|
11
|
+
|
12
|
+
bf_src = File.join(@bf_src_sir, "#{filename}.bf")
|
13
|
+
stdout = File.join(@output_dir, "#{filename}-1")
|
14
|
+
stderr = File.join(@output_dir, "#{filename}-2")
|
15
|
+
|
16
|
+
do_test(bf_src, '', input, stdout, stderr)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper' # for TestBase
|
2
|
+
|
3
|
+
class TestInputMode < TestBase
|
4
|
+
def setup
|
5
|
+
super
|
6
|
+
@input_dir = File.join(@input_dir, 'input_mode')
|
7
|
+
@output_dir = File.join(@output_dir, 'input_mode')
|
8
|
+
end
|
9
|
+
|
10
|
+
# test 'wrap_around' switch
|
11
|
+
def test_wrap_around
|
12
|
+
Dir.foreach(@input_dir) do |filename|
|
13
|
+
next if filename.eql?('.') || filename.eql?('..')
|
14
|
+
|
15
|
+
input = File.join(@input_dir, filename)
|
16
|
+
next if File.directory?(input)
|
17
|
+
|
18
|
+
# input filename must match this pattern
|
19
|
+
refute_nil(/(.*)-(buffered|raw)$/.match(filename))
|
20
|
+
filename, mode = $1, $2
|
21
|
+
|
22
|
+
bf_src = File.join(@bf_src_sir, "#{filename}.bf")
|
23
|
+
stdout = File.join(@output_dir, "#{filename}-#{mode}-1")
|
24
|
+
stderr = File.join(@output_dir, "#{filename}-#{mode}-2")
|
25
|
+
|
26
|
+
do_test(bf_src, "-i #{mode}", input, stdout, stderr)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'helper' # for TestBase
|
2
|
+
|
3
|
+
class TestWrapAround < TestBase
|
4
|
+
def setup
|
5
|
+
super
|
6
|
+
@input_dir = File.join(@input_dir, 'wrap_around')
|
7
|
+
@output_dir = File.join(@output_dir, 'wrap_around')
|
8
|
+
end
|
9
|
+
|
10
|
+
# test 'wrap_around' switch
|
11
|
+
def test_wrap_around
|
12
|
+
Dir.foreach(@input_dir) do |filename|
|
13
|
+
next if filename.eql?('.') || filename.eql?('..')
|
14
|
+
|
15
|
+
input = File.join(@input_dir, filename)
|
16
|
+
next if File.directory?(input)
|
17
|
+
|
18
|
+
bf_src = File.join(@bf_src_sir, "#{filename}.bf")
|
19
|
+
stdout = File.join(@output_dir, "#{filename}-1")
|
20
|
+
stderr = File.join(@output_dir, "#{filename}-2")
|
21
|
+
|
22
|
+
do_test(bf_src, '-w', input, stdout, stderr)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/yarbf.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.homepage = 'http://github.com/chaosdefinition/yarbf'
|
15
15
|
s.license = 'MIT'
|
16
16
|
|
17
|
-
s.files = `git ls-files -z`.split("\x0")
|
17
|
+
s.files = `git ls-files -z`.split("\x0")
|
18
18
|
s.bindir = 'bin'
|
19
19
|
s.executables = ['yarbf']
|
20
20
|
s.require_paths = ['lib']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yarbf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chaos Shen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: io-console
|
@@ -32,7 +32,9 @@ executables:
|
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
+
- ".codeclimate.yml"
|
35
36
|
- ".gitignore"
|
37
|
+
- ".rubocop.yml"
|
36
38
|
- ".travis.yml"
|
37
39
|
- CODE_OF_CONDUCT.md
|
38
40
|
- Gemfile
|
@@ -42,6 +44,78 @@ files:
|
|
42
44
|
- bin/yarbf
|
43
45
|
- lib/yarbf.rb
|
44
46
|
- lib/yarbf/version.rb
|
47
|
+
- test/bf/hello-world.bf
|
48
|
+
- test/bf/pi.bf
|
49
|
+
- test/bf/show-bf.bf
|
50
|
+
- test/bf/square.bf
|
51
|
+
- test/helper.rb
|
52
|
+
- test/input/cell_size/pi-10
|
53
|
+
- test/input/cell_size/pi-11
|
54
|
+
- test/input/cell_size/pi-12
|
55
|
+
- test/input/cell_size/pi-16
|
56
|
+
- test/input/cell_size/pi-8
|
57
|
+
- test/input/cell_size/pi-9
|
58
|
+
- test/input/debug/hello-world
|
59
|
+
- test/input/debug/pi
|
60
|
+
- test/input/debug/show-bf
|
61
|
+
- test/input/debug/square
|
62
|
+
- test/input/hello-world
|
63
|
+
- test/input/input_mode/show-bf-buffered
|
64
|
+
- test/input/input_mode/show-bf-raw
|
65
|
+
- test/input/pi
|
66
|
+
- test/input/show-bf
|
67
|
+
- test/input/square
|
68
|
+
- test/input/wrap_around/pi
|
69
|
+
- test/output/cell_size/pi-10-1
|
70
|
+
- test/output/cell_size/pi-10-2
|
71
|
+
- test/output/cell_size/pi-11-1
|
72
|
+
- test/output/cell_size/pi-11-2
|
73
|
+
- test/output/cell_size/pi-12-1
|
74
|
+
- test/output/cell_size/pi-12-2
|
75
|
+
- test/output/cell_size/pi-16-1
|
76
|
+
- test/output/cell_size/pi-16-2
|
77
|
+
- test/output/cell_size/pi-32-1
|
78
|
+
- test/output/cell_size/pi-32-2
|
79
|
+
- test/output/cell_size/pi-8-1
|
80
|
+
- test/output/cell_size/pi-8-2
|
81
|
+
- test/output/cell_size/pi-9-1
|
82
|
+
- test/output/cell_size/pi-9-2
|
83
|
+
- test/output/construct_program_units/hello-world-1
|
84
|
+
- test/output/construct_program_units/pi-1
|
85
|
+
- test/output/construct_program_units/show-bf-1
|
86
|
+
- test/output/construct_program_units/square-1
|
87
|
+
- test/output/debug/hello-world-1
|
88
|
+
- test/output/debug/hello-world-2
|
89
|
+
- test/output/debug/pi-1
|
90
|
+
- test/output/debug/pi-2
|
91
|
+
- test/output/debug/show-bf-1
|
92
|
+
- test/output/debug/show-bf-2
|
93
|
+
- test/output/debug/square-1
|
94
|
+
- test/output/debug/square-2
|
95
|
+
- test/output/hello-world-1
|
96
|
+
- test/output/hello-world-2
|
97
|
+
- test/output/input_mode/show-bf-buffered-1
|
98
|
+
- test/output/input_mode/show-bf-buffered-2
|
99
|
+
- test/output/input_mode/show-bf-raw-1
|
100
|
+
- test/output/input_mode/show-bf-raw-2
|
101
|
+
- test/output/match_brackets/hello-world-1
|
102
|
+
- test/output/match_brackets/pi-1
|
103
|
+
- test/output/match_brackets/show-bf-1
|
104
|
+
- test/output/match_brackets/square-1
|
105
|
+
- test/output/pi-1
|
106
|
+
- test/output/pi-2
|
107
|
+
- test/output/show-bf-1
|
108
|
+
- test/output/show-bf-2
|
109
|
+
- test/output/square-1
|
110
|
+
- test/output/square-2
|
111
|
+
- test/output/wrap_around/pi-1
|
112
|
+
- test/output/wrap_around/pi-2
|
113
|
+
- test/test_bf_interpreter.rb
|
114
|
+
- test/test_cell_size.rb
|
115
|
+
- test/test_debug.rb
|
116
|
+
- test/test_default.rb
|
117
|
+
- test/test_input_mode.rb
|
118
|
+
- test/test_wrap_around.rb
|
45
119
|
- yarbf.gemspec
|
46
120
|
homepage: http://github.com/chaosdefinition/yarbf
|
47
121
|
licenses:
|