qlang 0.0.14 → 0.0.27

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.
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Qlang do
4
+ describe 'Integral' do
5
+ context 'into R' do
6
+ it do
7
+
8
+ end
9
+ end
10
+
11
+ context 'into Ruby' do
12
+ it do
13
+ expect(
14
+ Q.to_ruby.compile('S( log(x)dx )[0..1]')
15
+ ).to eq(
16
+ 'S(log(x), dx)[0, 1]'
17
+ )
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe Qlang do
4
+ describe 'List' do
5
+ it do
6
+ # expect(
7
+ # Q.to_r.compile('{name: "Gogotanaka", age: 21, birth: (1992 8 10) }')
8
+ # ).to eq(
9
+ # "list(name=\"Gogotanaka\", age=21, birth=c(1992, 8, 10))"
10
+ # )
11
+
12
+ expect(
13
+ Q.to_r.compile('{key1: 234234, key2: 387342 }')
14
+ ).to eq(
15
+ "list(key1=234234, key2=387342)"
16
+ )
17
+
18
+ expect(
19
+ Q.to_r.compile('{key1:234234,key2:387342,key3:38733242}')
20
+ ).to eq(
21
+ "list(key1=234234, key2=387342, key3=38733242)"
22
+ )
23
+
24
+ # expect(
25
+ # Q.to_r.compile('{key1:(1 3 2; 8 2 3),key2:387342,key3:38733242}')
26
+ # ).to eq(
27
+ # "list(key1=matrix(c(1, 3, 2, 8, 2, 3), 2, 3, byrow = TRUE), key2=387342, key3=38733242)"
28
+ # )
29
+ end
30
+ end
31
+ end
@@ -21,6 +21,7 @@ describe Qlang do
21
21
  ).to eq(
22
22
  "matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), 3, 3, byrow = TRUE)"
23
23
  )
24
+
24
25
  expect(
25
26
  Q.to_r.compile('(1;2;3)')
26
27
  ).to eq(
@@ -36,11 +37,13 @@ describe Qlang do
36
37
  ).to eq(
37
38
  "Matrix[[1, 2, 3], [4, 5, 6]]"
38
39
  )
40
+
39
41
  expect(
40
42
  Q.to_ruby.compile('(1 2 3 ; 4 5 6; 7 8 9)')
41
43
  ).to eq(
42
44
  "Matrix[[1, 2, 3], [4, 5, 6], [7, 8, 9]]"
43
45
  )
46
+
44
47
  expect(
45
48
  Q.to_ruby.compile('(1;2;3)')
46
49
  ).to eq(
File without changes
data/spec/q_lang_spec.rb CHANGED
@@ -12,6 +12,36 @@ describe Qlang do
12
12
  describe Dydx do
13
13
  it 'check some example' do
14
14
  expect(d/dx(sin(x))).to eq cos(x)
15
+
16
+ expect(
17
+ Q.to_ruby.compile('d/dx(sin(x))')
18
+ ).to eq(
19
+ "d/dx(sin (x))"
20
+ )
21
+
22
+ expect(
23
+ Q.to_ruby.compile('d/dx(log(x))')
24
+ ).to eq(
25
+ "d/dx(log (x))"
26
+ )
27
+
28
+ expect(
29
+ Q.to_ruby.compile('f(x, y) = x + y')
30
+ ).to eq(
31
+ "f(x, y) <= x + y"
32
+ )
33
+
34
+ expect(
35
+ Matrix[[1, 2, 3], [4, 5, 6]].to_q
36
+ ).to eq(
37
+ "(1 2 3; 4 5 6)"
38
+ )
39
+
40
+ expect(
41
+ Vector[1, 2, 3].to_q
42
+ ).to eq(
43
+ "(1 2 3)"
44
+ )
15
45
  end
16
46
  end
17
47
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,8 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
2
  require 'qlang'
3
+ include Qlang
4
+
5
+ require 'coveralls'
6
+ Coveralls.wear!
7
+
3
8
  require 'pry'
metadata CHANGED
@@ -1,45 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qlang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - gogotanaka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-10 00:00:00.000000000 Z
11
+ date: 2014-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: dydx
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
19
+ version: 0.1.41421
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: 0.1.41421
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '1.6'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '1.6'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: dydx
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -70,11 +70,11 @@ description: Enjoy MATH!
70
70
  email:
71
71
  - mail@tanakakazuki.com
72
72
  executables:
73
- - dydx
74
- - q_lang
73
+ - qlang
75
74
  extensions: []
76
75
  extra_rdoc_files: []
77
76
  files:
77
+ - ".coveralls.yml"
78
78
  - ".gitignore"
79
79
  - ".rspec"
80
80
  - ".rubocop.yml"
@@ -83,36 +83,41 @@ files:
83
83
  - LICENSE.txt
84
84
  - README.md
85
85
  - Rakefile
86
- - bin/dydx
87
- - bin/q_lang
88
- - iqb.rb
86
+ - bin/qlang
89
87
  - lib/qlang.rb
90
88
  - lib/qlang/api.rb
91
89
  - lib/qlang/api/func_api.rb
90
+ - lib/qlang/api/integral_api.rb
92
91
  - lib/qlang/api/list_api.rb
93
92
  - lib/qlang/api/matrix_api.rb
94
93
  - lib/qlang/api/vector_api.rb
95
94
  - lib/qlang/exec.rb
95
+ - lib/qlang/iq.rb
96
96
  - lib/qlang/lexer.rb
97
97
  - lib/qlang/lexer/base.rb
98
98
  - lib/qlang/lexer/cont_lexer.rb
99
99
  - lib/qlang/lexer/func_lexer.rb
100
+ - lib/qlang/lexer/tokens.rb
100
101
  - lib/qlang/lexer/wrap_lexer.rb
101
102
  - lib/qlang/parser.rb
102
103
  - lib/qlang/parser/base.rb
104
+ - lib/qlang/parser/formula_parser.rb
103
105
  - lib/qlang/parser/func_parser.rb
106
+ - lib/qlang/parser/integral_parser.rb
104
107
  - lib/qlang/parser/list_parser.rb
105
108
  - lib/qlang/parser/matrix_parser.rb
106
109
  - lib/qlang/parser/vector_parser.rb
107
- - lib/qlang/q_on_irb.rb
108
110
  - lib/qlang/version.rb
109
111
  - q_lang.gemspec
110
- - spec/function_spec.rb
111
- - spec/list_spec.rb
112
- - spec/matrix_spec.rb
112
+ - spec/iq_spec.rb
113
+ - spec/lexer/regular_expressions_spec.rb
114
+ - spec/objects/function_spec.rb
115
+ - spec/objects/integral_spec.rb
116
+ - spec/objects/list_spec.rb
117
+ - spec/objects/matrix_spec.rb
118
+ - spec/objects/vector_spec.rb
113
119
  - spec/q_lang_spec.rb
114
120
  - spec/spec_helper.rb
115
- - spec/vector_spec.rb
116
121
  homepage: http://q-language.org/
117
122
  licenses:
118
123
  - MIT
@@ -138,9 +143,12 @@ signing_key:
138
143
  specification_version: 4
139
144
  summary: Enjoy MATH!
140
145
  test_files:
141
- - spec/function_spec.rb
142
- - spec/list_spec.rb
143
- - spec/matrix_spec.rb
146
+ - spec/iq_spec.rb
147
+ - spec/lexer/regular_expressions_spec.rb
148
+ - spec/objects/function_spec.rb
149
+ - spec/objects/integral_spec.rb
150
+ - spec/objects/list_spec.rb
151
+ - spec/objects/matrix_spec.rb
152
+ - spec/objects/vector_spec.rb
144
153
  - spec/q_lang_spec.rb
145
154
  - spec/spec_helper.rb
146
- - spec/vector_spec.rb
data/bin/dydx DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # The command line Haml parser.
3
-
4
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
5
- require 'q'
6
-
7
- opts = Q::Exec::Compiler.new(ARGV)
8
- opts.parse!
data/bin/q_lang DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'qlang'
data/iqb.rb DELETED
@@ -1,6 +0,0 @@
1
- require 'qlang'
2
- include Q
3
-
4
- loop do
5
- puts eval Qlang.to_ruby.compile(gets)
6
- end
@@ -1,8 +0,0 @@
1
- module Qlang
2
- module QOnIrb
3
- def _(code)
4
- super(code) unless code.is_a?(String)
5
- Q.to_ruby.compile()
6
- end
7
- end
8
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Qlang do
4
- describe 'Function' do
5
- it do
6
- expect(
7
- Q.compile('f(x, y) = x + y')
8
- ).to eq(
9
- "f <- function(x ,y) x + y"
10
- )
11
-
12
- expect(
13
- Q.compile('g(x) = x ** 2')
14
- ).to eq(
15
- "g <- function(x) x ** 2"
16
- )
17
-
18
- expect(
19
- Q.compile('g(x) = x ** (2 + 2)')
20
- ).to eq(
21
- "g <- function(x) x ** (2 + 2)"
22
- )
23
-
24
- expect(
25
- Q.compile('h(a, b, c) = a ** 2 + b ** 2 + c ** 2')
26
- ).to eq(
27
- "h <- function(a ,b ,c) a ** 2 + b ** 2 + c ** 2"
28
- )
29
- end
30
- end
31
- end
data/spec/list_spec.rb DELETED
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Qlang do
4
- describe 'List' do
5
- it do
6
- expect(
7
- Q.compile('{name: "Gogotanaka", age: 21, birth: (1992 8 10) }')
8
- ).to eq(
9
- "list(name=\"Gogotanaka\", age=21, birth=c(1992, 8, 10))"
10
- )
11
-
12
- expect(
13
- Q.compile('{key1: 234234, key2: 387342 }')
14
- ).to eq(
15
- "list(key1=234234, key2=387342)"
16
- )
17
-
18
- expect(
19
- Q.compile('{key1:234234,key2:387342,key3:38733242}')
20
- ).to eq(
21
- "list(key1=234234, key2=387342, key3=38733242)"
22
- )
23
-
24
- expect(
25
- Q.compile('{key1:(1 3 2; 8 2 3),key2:387342,key3:38733242}')
26
- ).to eq(
27
- "list(key1=matrix(c(1, 3, 2, 8, 2, 3), 2, 3, byrow = TRUE), key2=387342, key3=38733242)"
28
- )
29
- end
30
- end
31
- end