ajax-cat 0.3.0 → 0.4.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.
data/test/helper.rb CHANGED
@@ -16,55 +16,5 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
16
16
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
17
17
  require 'ajax-cat'
18
18
 
19
- @moses_ini = <<-END
20
- #########################
21
- ### MOSES CONFIG FILE ###
22
- #########################
23
-
24
- # input factors
25
- [input-factors]
26
- 0
27
-
28
- # mapping steps, either (T) translation or (G) generation
29
- [mapping]
30
- T 0
31
-
32
- # translation tables: source-factors, target-factors, number of scores, file
33
- [ttable-file]
34
- 0 0 0 1 #{Dir.pwd}/test/fixtures/phrase-table
35
-
36
- # language models: type(srilm/irstlm/kenlm), factors, order, file
37
- [lmodel-file]
38
- 8 0 3 #{Dir.pwd}/test/fixtures/europarl.srilm.gz
39
-
40
- # limit on how many phrase translations e for each phrase f are loaded
41
- [ttable-limit]
42
- 10
43
-
44
- # distortion (reordering) weight
45
- [weight-d]
46
- 1
47
-
48
- # language model weights
49
- [weight-l]
50
- 1
51
-
52
- # translation model weights
53
- [weight-t]
54
- 1
55
-
56
- # word penalty
57
- [weight-w]
58
- 0
59
-
60
- [n-best-list]
61
- nbest.txt
62
- 100
63
-
64
-
65
-
66
- END
67
-
68
- f = File.new(File.dirname(__FILE__) + "/fixtures/moses.ini", "w")
69
- f.write(@moses_ini)
70
- f.close
19
+ AjaxCat::Logger.print_log(false)
20
+ AjaxCat::Runner.create_sample_moses_ini
@@ -6,16 +6,44 @@ module AjaxCat
6
6
  context "run app" do
7
7
 
8
8
  setup do
9
+ Dir.chdir(File.dirname(__FILE__) + "/../fixtures/")
9
10
  @port = 8585
10
11
  @pid = fork do
11
- Starter.start(@port, false)
12
+ Runner.new(@port)
12
13
  end
14
+ server_started = false
15
+ 1000.times do
16
+ raised = false
17
+ begin
18
+ Curl::Easy.perform("http://localhost:#{@port}/index.html")
19
+ rescue
20
+ raised = true
21
+ end
22
+ unless raised
23
+ server_started = true
24
+ break
25
+ end
26
+ sleep 0.01
27
+ end
28
+ raise "cant start server" unless server_started
13
29
  end
14
30
 
15
- should "start server on default port 8585" do
16
- sleep 3
31
+ should "start server on default port" do
17
32
  result = Curl::Easy.perform("http://localhost:#{@port}/index.html")
18
33
  assert_equal 200, result.response_code
34
+
35
+ result = Curl::Easy.perform("http://localhost:#{@port}/api/raw?q=das+ist&pair=de-en")
36
+ assert_equal 200, result.response_code
37
+ assert_equal(724, result.body_str.size)
38
+
39
+ result = Curl::Easy.perform("http://localhost:#{@port}/api/table?q=das+ist&pair=de-en")
40
+ assert_equal 200, result.response_code
41
+
42
+ result = Curl::Easy.perform("http://localhost:#{@port}/api/table?q=das+ist")
43
+ assert_equal 404, result.response_code
44
+
45
+ result = Curl::Easy.perform("http://localhost:#{@port}/api/suggestion?q=das+ist+ein&pair=de-en&covered=100&translated=tohle")
46
+ assert_equal 200, result.response_code
19
47
  end
20
48
 
21
49
  teardown do
@@ -4,15 +4,12 @@ module AjaxCat
4
4
 
5
5
  class TestMosesPair < Test::Unit::TestCase
6
6
  def test_moses_pair
7
-
8
- Logger.print_log(false)
9
-
10
7
  moses_ini_path = File.dirname(__FILE__) + "/../fixtures/moses.ini"
11
8
  @pair = MosesPair.new('cs-en',"moses",moses_ini_path)
12
9
  assert_equal(@pair.class, MosesPair, "right class")
13
10
  request = Request::Raw.new("das ist")
14
11
  result = @pair.process_request(request)
15
- assert_equal(616, result.size)
12
+ assert_equal(724, result.size)
16
13
  end
17
14
  end
18
15
 
@@ -0,0 +1,43 @@
1
+ require 'helper'
2
+
3
+ module AjaxCat
4
+
5
+ class TestPairs < Test::Unit::TestCase
6
+ context "run pairs from file" do
7
+
8
+ setup do
9
+ moses_ini_path = File.dirname(__FILE__) + "/../fixtures/moses.ini"
10
+ @pair_name = 'de-en'
11
+ @settings = {
12
+ "pairs" => [
13
+ {
14
+ "name" => @pair_name,
15
+ "moses_path" => 'moses',
16
+ "moses_ini_path" => moses_ini_path
17
+ },
18
+ {
19
+ "name" => @pair_name + "-2",
20
+ "moses_path" => 'moses',
21
+ "moses_ini_path" => moses_ini_path
22
+ }
23
+ ]
24
+ }
25
+ end
26
+
27
+ should "pairs should be started" do
28
+
29
+ pairs = Pairs.new(@settings)
30
+
31
+ result = pairs.process_request(Request::Raw.new("das ist"), @pair_name)
32
+ assert_equal(724, result.size)
33
+ assert_equal(['de-en','de-en-2'], pairs.list)
34
+ end
35
+
36
+ teardown do
37
+
38
+ end
39
+
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,32 @@
1
+ require 'helper'
2
+
3
+ module AjaxCat
4
+
5
+ class TestSuggestionRequest < Test::Unit::TestCase
6
+ context "process suggestions" do
7
+
8
+ setup do
9
+
10
+ end
11
+
12
+ should "parse suggestions right" do
13
+ request = Request::Suggestion.new("das ist ein kleines haus", "11000", " tohle je")
14
+ request.process_line("0 ||| tohle je a small house ||| d: 0 lm: -25.9604 w: -3 tm: -1.60944 ||| -27.5698 ||| 2=2 3=3 4=4")
15
+ request.process_line("0 ||| tohle je a little house ||| d: 0 lm: -25.9604 w: -3 tm: -1.60944 ||| -27.5698 ||| 2=2 3=3 4=4")
16
+ request.process_line("0 ||| tohle je an small house ||| d: 0 lm: -25.9604 w: -3 tm: -1.60944 ||| -27.5698 ||| 2=2 3=3 4=4")
17
+ request.process_line("0 ||| tohle je an small house ||| d: 0 lm: -25.9604 w: -3 tm: -1.60944 ||| -27.5698 ||| 2=2 3=3 4=4")
18
+
19
+
20
+ assert_equal(
21
+ {
22
+ "suggestions" => [
23
+ "a small house",
24
+ "a little house",
25
+ "an small house"
26
+ ]
27
+ }, request.result)
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,61 @@
1
+ require 'helper'
2
+
3
+ module AjaxCat
4
+
5
+ class TestTableRequest < Test::Unit::TestCase
6
+ context "process table" do
7
+
8
+ setup do
9
+ @logger = Logger.new("prefix")
10
+ end
11
+
12
+ should "parse table right" do
13
+ request = Request::Table.new(" das ist ein ")
14
+ request.process_line("464 ||| this is a ||| d: 0 lm: -15.6027 w: -3 tm: -0.223144 ||| -15.8259 ||| 0-1=0-1 2=2")
15
+ request.process_line("464 ||| this is an ||| d: 0 lm: -16.3011 w: -3 tm: -0.223144 ||| -16.5242 ||| 0-1=0-1 2=2")
16
+ request.process_line("464 ||| ann this is ||| d: -5 lm: -29.8134 w: -3 tm: -0.223144 ||| -35.0366 ||| 2=0 0=1-2")
17
+
18
+ assert_equal(
19
+ {
20
+ "source" => ["das","ist","ein"],
21
+ "table" =>
22
+ [
23
+ [
24
+ {
25
+ "str" => "this is",
26
+ "w" => 2
27
+ },
28
+ {
29
+ "str" => "a",
30
+ "w" => 1
31
+ }
32
+ ],
33
+ [
34
+ {
35
+ "str" => "this is",
36
+ "w" => 1
37
+ },
38
+ {
39
+ "w" => 1
40
+ },
41
+ {
42
+ "str" => "an",
43
+ "w" => 1
44
+ }
45
+ ],
46
+ [
47
+ {
48
+ "w" => 2
49
+ },
50
+ {
51
+ "str" => "ann",
52
+ "w" => 1
53
+ }
54
+ ]
55
+ ]
56
+ }, request.result)
57
+ end
58
+
59
+ end
60
+ end
61
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ajax-cat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-16 00:00:00.000000000Z
12
+ date: 2012-05-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &2177543000 !ruby/object:Gem::Requirement
16
+ requirement: &2165628220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.3.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2177543000
24
+ version_requirements: *2165628220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colorize
27
- requirement: &2177542520 !ruby/object:Gem::Requirement
27
+ requirement: &2165627620 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.5.8
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2177542520
35
+ version_requirements: *2165627620
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: thin
38
- requirement: &2177542040 !ruby/object:Gem::Requirement
38
+ requirement: &2165624860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2177542040
46
+ version_requirements: *2165624860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: thor
49
- requirement: &2177541540 !ruby/object:Gem::Requirement
49
+ requirement: &2165624380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,32 @@ dependencies:
54
54
  version: 0.15.2
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2177541540
57
+ version_requirements: *2165624380
58
+ - !ruby/object:Gem::Dependency
59
+ name: sqlite3-ruby
60
+ requirement: &2165623860 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 1.3.3
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2165623860
69
+ - !ruby/object:Gem::Dependency
70
+ name: activerecord
71
+ requirement: &2165623100 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *2165623100
58
80
  - !ruby/object:Gem::Dependency
59
81
  name: rdoc
60
- requirement: &2177540920 !ruby/object:Gem::Requirement
82
+ requirement: &2165622420 !ruby/object:Gem::Requirement
61
83
  none: false
62
84
  requirements:
63
85
  - - ~>
@@ -65,10 +87,10 @@ dependencies:
65
87
  version: '3.12'
66
88
  type: :development
67
89
  prerelease: false
68
- version_requirements: *2177540920
90
+ version_requirements: *2165622420
69
91
  - !ruby/object:Gem::Dependency
70
92
  name: bundler
71
- requirement: &2177540320 !ruby/object:Gem::Requirement
93
+ requirement: &2165621660 !ruby/object:Gem::Requirement
72
94
  none: false
73
95
  requirements:
74
96
  - - ~>
@@ -76,10 +98,10 @@ dependencies:
76
98
  version: 1.0.0
77
99
  type: :development
78
100
  prerelease: false
79
- version_requirements: *2177540320
101
+ version_requirements: *2165621660
80
102
  - !ruby/object:Gem::Dependency
81
103
  name: jeweler
82
- requirement: &2177539360 !ruby/object:Gem::Requirement
104
+ requirement: &2165621040 !ruby/object:Gem::Requirement
83
105
  none: false
84
106
  requirements:
85
107
  - - ~>
@@ -87,10 +109,10 @@ dependencies:
87
109
  version: 1.8.3
88
110
  type: :development
89
111
  prerelease: false
90
- version_requirements: *2177539360
112
+ version_requirements: *2165621040
91
113
  - !ruby/object:Gem::Dependency
92
114
  name: shoulda
93
- requirement: &2177538680 !ruby/object:Gem::Requirement
115
+ requirement: &2165620540 !ruby/object:Gem::Requirement
94
116
  none: false
95
117
  requirements:
96
118
  - - ~>
@@ -98,10 +120,10 @@ dependencies:
98
120
  version: 3.0.1
99
121
  type: :development
100
122
  prerelease: false
101
- version_requirements: *2177538680
123
+ version_requirements: *2165620540
102
124
  - !ruby/object:Gem::Dependency
103
125
  name: curb
104
- requirement: &2177538200 !ruby/object:Gem::Requirement
126
+ requirement: &2165619980 !ruby/object:Gem::Requirement
105
127
  none: false
106
128
  requirements:
107
129
  - - ~>
@@ -109,7 +131,7 @@ dependencies:
109
131
  version: 0.8.0
110
132
  type: :development
111
133
  prerelease: false
112
- version_requirements: *2177538200
134
+ version_requirements: *2165619980
113
135
  description: computer-aided translation backed by machine translation
114
136
  email: odchazel@gmail.com
115
137
  executables:
@@ -131,8 +153,10 @@ files:
131
153
  - lib/.DS_Store
132
154
  - lib/ajax-cat.rb
133
155
  - lib/ajax-cat/ajax_cat_server.rb
156
+ - lib/ajax-cat/log.rb
134
157
  - lib/ajax-cat/logger.rb
135
158
  - lib/ajax-cat/moses_pair.rb
159
+ - lib/ajax-cat/pairs.rb
136
160
  - lib/ajax-cat/public/AjaxCatList.coffee
137
161
  - lib/ajax-cat/public/AjaxCatTranslation.coffee
138
162
  - lib/ajax-cat/public/Suggestions.coffee
@@ -150,8 +174,16 @@ files:
150
174
  - lib/ajax-cat/public/translation.js
151
175
  - lib/ajax-cat/request/raw.rb
152
176
  - lib/ajax-cat/request/simple.rb
177
+ - lib/ajax-cat/request/suggestion.rb
178
+ - lib/ajax-cat/request/table.rb
179
+ - lib/ajax-cat/task.rb
180
+ - lib/ajax-cat/views/admin.erb
181
+ - lib/ajax-cat/views/experiment.erb
182
+ - logs.db
183
+ - test/fixtures/ajax-cat.ini.json
153
184
  - test/fixtures/europarl.srilm.gz
154
185
  - test/fixtures/moses.ini
186
+ - test/fixtures/nbest.txt
155
187
  - test/fixtures/phrase-table
156
188
  - test/fixtures/translation_table
157
189
  - test/helper.rb
@@ -159,8 +191,11 @@ files:
159
191
  - test/unit/.DS_Store
160
192
  - test/unit/test_logger.rb
161
193
  - test/unit/test_moses_pair.rb
194
+ - test/unit/test_pairs.rb
162
195
  - test/unit/test_raw_request.rb
163
196
  - test/unit/test_simple_request.rb
197
+ - test/unit/test_suggestion_request.rb
198
+ - test/unit/test_table_request.rb
164
199
  homepage: http://github.com/hypertornado/ajax-cat
165
200
  licenses:
166
201
  - MIT
@@ -176,7 +211,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
211
  version: '0'
177
212
  segments:
178
213
  - 0
179
- hash: -1104195367549568479
214
+ hash: -801702601233484845
180
215
  required_rubygems_version: !ruby/object:Gem::Requirement
181
216
  none: false
182
217
  requirements: