ajax-cat 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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: