sooth 2.0.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9bac8ab9338973373ec7328dd58dcae462e86485
4
- data.tar.gz: ea7f2ecb422e0301e36d5f6826aa8ccdbaefb619
2
+ SHA256:
3
+ metadata.gz: 90bc41abd21d0ea01fe4d0b0545b7273d9e00c85f82ed6910bfda9d585b034c7
4
+ data.tar.gz: 3caaae80b3c00b79d9b241a04f0f23a43cc2bb72bc86aaae4bc453c6c29ddd0f
5
5
  SHA512:
6
- metadata.gz: bf39ddf48fba680f4e6f84d42d5f9dc2f59999c83aabafc9f6ba8761f77d24835cfd5b6a6e9f349d61c0e44caec9b7ce2276ba181e4cb13c96980f177481e5ee
7
- data.tar.gz: 4ab08bdf68a0f38b676c033f54949bf6a6854f2ade41a2f32b2a62b8a3cff49dcd58b3d89b3f6afa60cef5e6c3863fd22d4a6afd6223285844e72bef4b63d24c
6
+ metadata.gz: 311093bd474955a2be8f836cd5d6cc09aa36679aa50f3464a53bb09ed853eca3626bb5f948f691d558e19d21d16813cb0f587de8ec7b4696926f64acb8e77b3b
7
+ data.tar.gz: 37addfac68bd1f47af487a58eda05fd00bd43d7f6ecd91bd6b1432014313678a54d73109c1ccf03685b511acb636c32b0eb621522a180d4f63bcbdf075615118
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## [v2.1.0](https://github.com/jasonhutchens/sooth/tree/v2.1.0) (2017-04-17)
4
+ [Full Changelog](https://github.com/jasonhutchens/sooth/compare/v2.0.0...v2.1.0)
5
+
6
+ ## [v2.0.0](https://github.com/jasonhutchens/sooth/tree/v2.0.0) (2016-04-06)
7
+ [Full Changelog](https://github.com/jasonhutchens/sooth/compare/v1.0.3...v2.0.0)
8
+
3
9
  ## [v1.0.3](https://github.com/jasonhutchens/sooth/tree/v1.0.3) (2015-10-03)
4
10
  [Full Changelog](https://github.com/jasonhutchens/sooth/compare/v1.0.2...v1.0.3)
5
11
 
data/Gemfile CHANGED
@@ -1,13 +1,12 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  group :development do
4
- gem 'rspec', '~> 3.1'
5
- gem 'yard', '~> 0.8'
6
- gem 'rdoc', '~> 4.1'
7
- gem 'bundler', '~> 1.7'
8
- gem 'jeweler', '~> 2.0'
9
- gem 'simplecov', '~> 0.9'
10
- gem 'byebug', '~> 8.2'
11
- gem 'rake-compiler', '~> 0.9'
12
- gem 'github_changelog_generator', '~> 1.4'
4
+ gem 'rspec', '~> 3.10'
5
+ gem 'yard', '~> 0.9'
6
+ gem 'rdoc', '~> 6.3'
7
+ gem 'juwelier', '~> 2.4'
8
+ gem 'simplecov', '~> 0.21'
9
+ gem 'byebug', '~> 11.1'
10
+ gem 'rake-compiler', '~> 1.1'
11
+ gem 'github_changelog_generator', '~> 1.15'
13
12
  end
@@ -1,119 +1,133 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- addressable (2.4.0)
5
- ast (2.2.0)
6
- builder (3.2.2)
7
- byebug (8.2.2)
8
- childprocess (0.5.9)
9
- ffi (~> 1.0, >= 1.0.11)
10
- colorize (0.7.7)
4
+ activesupport (6.1.0)
5
+ concurrent-ruby (~> 1.0, >= 1.0.2)
6
+ i18n (>= 1.6, < 2)
7
+ minitest (>= 5.1)
8
+ tzinfo (~> 2.0)
9
+ zeitwerk (~> 2.3)
10
+ addressable (2.7.0)
11
+ public_suffix (>= 2.0.2, < 5.0)
12
+ builder (3.2.4)
13
+ byebug (11.1.3)
14
+ concurrent-ruby (1.1.7)
11
15
  descendants_tracker (0.0.4)
12
16
  thread_safe (~> 0.3, >= 0.3.1)
13
- diff-lcs (1.2.5)
14
- docile (1.1.5)
15
- faraday (0.9.2)
17
+ diff-lcs (1.4.4)
18
+ docile (1.3.4)
19
+ faraday (1.3.0)
20
+ faraday-net_http (~> 1.0)
16
21
  multipart-post (>= 1.2, < 3)
17
- ffi (1.9.10)
18
- git (1.3.0)
19
- github_api (0.13.1)
20
- addressable (~> 2.4.0)
22
+ ruby2_keywords
23
+ faraday-http-cache (2.2.0)
24
+ faraday (>= 0.8)
25
+ faraday-net_http (1.0.0)
26
+ git (1.8.1)
27
+ rchardet (~> 1.8)
28
+ github_api (0.19.0)
29
+ addressable (~> 2.4)
21
30
  descendants_tracker (~> 0.0.4)
22
- faraday (~> 0.8, < 0.10)
23
- hashie (>= 3.4)
24
- multi_json (>= 1.7.5, < 2.0)
25
- oauth2
26
- github_changelog_generator (1.12.0)
27
- bundler (>= 1.7)
28
- colorize (~> 0.7)
29
- github_api (~> 0.12)
30
- overcommit (>= 0.31)
31
+ faraday (>= 0.8, < 2)
32
+ hashie (~> 3.5, >= 3.5.2)
33
+ oauth2 (~> 1.0)
34
+ github_changelog_generator (1.15.2)
35
+ activesupport
36
+ faraday-http-cache
37
+ multi_json
38
+ octokit (~> 4.6)
39
+ rainbow (>= 2.2.1)
31
40
  rake (>= 10.0)
32
- rspec (>= 3.2)
33
- rubocop (>= 0.31)
34
- hashie (3.4.3)
35
- highline (1.7.8)
36
- iniparse (1.4.2)
37
- jeweler (2.1.1)
41
+ retriable (~> 3.0)
42
+ hashie (3.6.0)
43
+ highline (2.0.3)
44
+ i18n (1.8.7)
45
+ concurrent-ruby (~> 1.0)
46
+ juwelier (2.4.9)
38
47
  builder
39
- bundler (>= 1.0)
40
- git (>= 1.2.5)
48
+ bundler
49
+ git
41
50
  github_api
42
- highline (>= 1.6.15)
43
- nokogiri (>= 1.5.10)
51
+ highline
52
+ kamelcase (~> 0)
53
+ nokogiri
54
+ psych
44
55
  rake
45
56
  rdoc
46
- semver
47
- json (1.8.3)
48
- jwt (1.5.1)
49
- mini_portile2 (2.0.0)
50
- multi_json (1.11.2)
51
- multi_xml (0.5.5)
52
- multipart-post (2.0.0)
53
- nokogiri (1.6.7.2)
54
- mini_portile2 (~> 2.0.0.rc2)
55
- oauth2 (1.1.0)
56
- faraday (>= 0.8, < 0.10)
57
- jwt (~> 1.0, < 1.5.2)
57
+ semver2
58
+ jwt (2.2.2)
59
+ kamelcase (0.0.2)
60
+ semver2 (~> 3)
61
+ mini_portile2 (2.5.0)
62
+ minitest (5.14.2)
63
+ multi_json (1.15.0)
64
+ multi_xml (0.6.0)
65
+ multipart-post (2.1.1)
66
+ nokogiri (1.11.0)
67
+ mini_portile2 (~> 2.5.0)
68
+ racc (~> 1.4)
69
+ oauth2 (1.4.4)
70
+ faraday (>= 0.8, < 2.0)
71
+ jwt (>= 1.0, < 3.0)
58
72
  multi_json (~> 1.3)
59
73
  multi_xml (~> 0.5)
60
74
  rack (>= 1.2, < 3)
61
- overcommit (0.33.0)
62
- childprocess (~> 0.5.8)
63
- iniparse (~> 1.4)
64
- parser (2.3.0.7)
65
- ast (~> 2.2)
66
- powerpack (0.1.1)
67
- rack (1.6.4)
68
- rainbow (2.1.0)
69
- rake (11.1.2)
70
- rake-compiler (0.9.7)
75
+ octokit (4.20.0)
76
+ faraday (>= 0.9)
77
+ sawyer (~> 0.8.0, >= 0.5.3)
78
+ psych (3.3.0)
79
+ public_suffix (4.0.6)
80
+ racc (1.5.2)
81
+ rack (2.2.3)
82
+ rainbow (3.0.0)
83
+ rake (13.0.3)
84
+ rake-compiler (1.1.1)
71
85
  rake
72
- rdoc (4.2.2)
73
- json (~> 1.4)
74
- rspec (3.4.0)
75
- rspec-core (~> 3.4.0)
76
- rspec-expectations (~> 3.4.0)
77
- rspec-mocks (~> 3.4.0)
78
- rspec-core (3.4.4)
79
- rspec-support (~> 3.4.0)
80
- rspec-expectations (3.4.0)
86
+ rchardet (1.8.0)
87
+ rdoc (6.3.0)
88
+ retriable (3.1.2)
89
+ rspec (3.10.0)
90
+ rspec-core (~> 3.10.0)
91
+ rspec-expectations (~> 3.10.0)
92
+ rspec-mocks (~> 3.10.0)
93
+ rspec-core (3.10.1)
94
+ rspec-support (~> 3.10.0)
95
+ rspec-expectations (3.10.1)
81
96
  diff-lcs (>= 1.2.0, < 2.0)
82
- rspec-support (~> 3.4.0)
83
- rspec-mocks (3.4.1)
97
+ rspec-support (~> 3.10.0)
98
+ rspec-mocks (3.10.1)
84
99
  diff-lcs (>= 1.2.0, < 2.0)
85
- rspec-support (~> 3.4.0)
86
- rspec-support (3.4.1)
87
- rubocop (0.39.0)
88
- parser (>= 2.3.0.7, < 3.0)
89
- powerpack (~> 0.1)
90
- rainbow (>= 1.99.1, < 3.0)
91
- ruby-progressbar (~> 1.7)
92
- unicode-display_width (~> 1.0, >= 1.0.1)
93
- ruby-progressbar (1.7.5)
94
- semver (1.0.1)
95
- simplecov (0.11.2)
96
- docile (~> 1.1.0)
97
- json (~> 1.8)
98
- simplecov-html (~> 0.10.0)
99
- simplecov-html (0.10.0)
100
- thread_safe (0.3.5)
101
- unicode-display_width (1.0.3)
102
- yard (0.8.7.6)
100
+ rspec-support (~> 3.10.0)
101
+ rspec-support (3.10.1)
102
+ ruby2_keywords (0.0.2)
103
+ sawyer (0.8.2)
104
+ addressable (>= 2.3.5)
105
+ faraday (> 0.8, < 2.0)
106
+ semver2 (3.4.2)
107
+ simplecov (0.21.0)
108
+ docile (~> 1.1)
109
+ simplecov-html (~> 0.11)
110
+ simplecov_json_formatter (~> 0.1)
111
+ simplecov-html (0.12.3)
112
+ simplecov_json_formatter (0.1.2)
113
+ thread_safe (0.3.6)
114
+ tzinfo (2.0.4)
115
+ concurrent-ruby (~> 1.0)
116
+ yard (0.9.26)
117
+ zeitwerk (2.4.2)
103
118
 
104
119
  PLATFORMS
105
120
  ruby
106
121
 
107
122
  DEPENDENCIES
108
- bundler (~> 1.7)
109
- byebug (~> 8.2)
110
- github_changelog_generator (~> 1.4)
111
- jeweler (~> 2.0)
112
- rake-compiler (~> 0.9)
113
- rdoc (~> 4.1)
114
- rspec (~> 3.1)
115
- simplecov (~> 0.9)
116
- yard (~> 0.8)
123
+ byebug (~> 11.1)
124
+ github_changelog_generator (~> 1.15)
125
+ juwelier (~> 2.4)
126
+ rake-compiler (~> 1.1)
127
+ rdoc (~> 6.3)
128
+ rspec (~> 3.10)
129
+ simplecov (~> 0.21)
130
+ yard (~> 0.9)
117
131
 
118
132
  BUNDLED WITH
119
- 1.11.2
133
+ 1.17.3
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/sooth.svg)](http://badge.fury.io/rb/sooth)
2
- [![Dependency Status](https://gemnasium.com/jasonhutchens/sooth.png)](https://gemnasium.com/jasonhutchens/sooth)
3
2
  [![Codeship Status for jasonhutchens/sooth](https://codeship.com/projects/24d68130-e5b3-0132-369b-0addec64e5bc/status?branch=master)](https://codeship.com/projects/82075)
4
3
 
5
4
  Sooth
@@ -19,4 +18,4 @@ Look at the [API docs](http://www.rubydoc.info/gems/sooth/Sooth/Predictor) to ge
19
18
  Copyright
20
19
  ---------
21
20
 
22
- Copyright (c) 2016 Jason Hutchens. See UNLICENSE for further details.
21
+ Copyright (c) 2018 Jason Hutchens. See UNLICENSE for further details.
data/Rakefile CHANGED
@@ -11,8 +11,8 @@ rescue Bundler::BundlerError => e
11
11
  end
12
12
  require 'rake'
13
13
 
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
14
+ require 'juwelier'
15
+ Juwelier::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
17
17
  gem.name = "sooth"
18
18
  gem.homepage = "http://github.com/jasonhutchens/sooth"
@@ -21,10 +21,10 @@ Jeweler::Tasks.new do |gem|
21
21
  gem.description = %Q{Sooth is a simple stochastic predictive model.}
22
22
  gem.email = "jasonhutchens@gmail.com"
23
23
  gem.authors = ["Jason Hutchens"]
24
- gem.required_ruby_version = "~> 2.1"
24
+ gem.required_ruby_version = ">= 2.1"
25
25
  # dependencies defined in Gemfile
26
26
  end
27
- Jeweler::RubygemsDotOrgTasks.new
27
+ Juwelier::RubygemsDotOrgTasks.new
28
28
 
29
29
  require 'rake/extensiontask'
30
30
  Rake::ExtensionTask.new('sooth_native')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.3.0
@@ -43,7 +43,10 @@ void method_sooth_native_deallocate(void * predictor);
43
43
  * def uncertainty(context)
44
44
  * # (native code)
45
45
  * end
46
- * def surprise(context, evemt)
46
+ * def surprise(context, event)
47
+ * # (native code)
48
+ * end
49
+ * def frequency(context, event)
47
50
  * # (native code)
48
51
  * end
49
52
  * end
@@ -159,6 +162,16 @@ VALUE method_sooth_native_uncertainty(VALUE self, VALUE context);
159
162
  */
160
163
  VALUE method_sooth_native_surprise(VALUE self, VALUE bigram, VALUE limit);
161
164
 
165
+ /*
166
+ * Return a number indicating the frequency that the event has been observed
167
+ * within the given context.
168
+ *
169
+ * @param [Fixnum] context A number that provides a context for observations.
170
+ * @param [Fixnum] event A number representing the observed event.
171
+ * @return [Float] The frequency, as a number between 0.0 and 1.0
172
+ */
173
+ VALUE method_sooth_native_frequency(VALUE self, VALUE bigram, VALUE limit);
174
+
162
175
  //------------------------------------------------------------------------------
163
176
 
164
177
  void Init_sooth_native()
@@ -181,6 +194,7 @@ void Init_sooth_native()
181
194
  rb_define_method(SoothNative, "distribution", method_sooth_native_distribution, 1);
182
195
  rb_define_method(SoothNative, "uncertainty", method_sooth_native_uncertainty, 1);
183
196
  rb_define_method(SoothNative, "surprise", method_sooth_native_surprise, 2);
197
+ rb_define_method(SoothNative, "frequency", method_sooth_native_frequency, 2);
184
198
  }
185
199
 
186
200
  //------------------------------------------------------------------------------
@@ -368,4 +382,16 @@ method_sooth_native_surprise(VALUE self, VALUE context, VALUE event)
368
382
  return DBL2NUM(surprise);
369
383
  }
370
384
 
385
+ //------------------------------------------------------------------------------
386
+
387
+ VALUE
388
+ method_sooth_native_frequency(VALUE self, VALUE context, VALUE event)
389
+ {
390
+ SoothPredictor * predictor = NULL;
391
+ Check_Type(context, T_FIXNUM);
392
+ Check_Type(event, T_FIXNUM);
393
+ Data_Get_Struct(self, SoothPredictor, predictor);
394
+ return DBL2NUM(sooth_predictor_frequency(predictor, NUM2UINT(context), NUM2UINT(event)));
395
+ }
396
+
371
397
  //==============================================================================
@@ -406,4 +406,26 @@ sooth_predictor_surprise(SoothPredictor * predictor, uint32_t id, uint32_t event
406
406
  return -log2(frequency);
407
407
  }
408
408
 
409
+ //------------------------------------------------------------------------------
410
+
411
+ double
412
+ sooth_predictor_frequency(SoothPredictor * predictor, uint32_t id, uint32_t event)
413
+ {
414
+ SoothContext * context = sooth_predictor_find_context(predictor, id);
415
+
416
+ if (context == NULL || context->count == 0)
417
+ {
418
+ return 0.0;
419
+ }
420
+
421
+ SoothStatistic * statistic = sooth_predictor_find_statistic(context, event);
422
+
423
+ if (statistic == NULL || statistic->count == 0)
424
+ {
425
+ return 0.0;
426
+ }
427
+
428
+ return (double)statistic->count / (double)context->count;
429
+ }
430
+
409
431
  //==============================================================================
@@ -30,6 +30,7 @@ uint32_t sooth_predictor_select(SoothPredictor * predictor, uint32_t id, uint32_
30
30
  SoothStatistic * sooth_predictor_distribution(SoothPredictor * predictor, uint32_t id);
31
31
  double sooth_predictor_uncertainty(SoothPredictor * predictor, uint32_t id);
32
32
  double sooth_predictor_surprise(SoothPredictor * predictor, uint32_t id, uint32_t symbol);
33
+ double sooth_predictor_frequency(SoothPredictor * predictor, uint32_t id, uint32_t symbol);
33
34
 
34
35
  //==============================================================================
35
36
 
@@ -1,22 +1,23 @@
1
- # Generated by jeweler
1
+ # Generated by juwelier
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: sooth 2.0.0 ruby lib
5
+ # stub: sooth 2.3.0 ruby lib
6
6
  # stub: ext/sooth_native/extconf.rb
7
7
 
8
8
  Gem::Specification.new do |s|
9
- s.name = "sooth"
10
- s.version = "2.0.0"
9
+ s.name = "sooth".freeze
10
+ s.version = "2.3.0"
11
11
 
12
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
- s.require_paths = ["lib"]
14
- s.authors = ["Jason Hutchens"]
15
- s.date = "2016-04-06"
16
- s.description = "Sooth is a simple stochastic predictive model."
17
- s.email = "jasonhutchens@gmail.com"
18
- s.extensions = ["ext/sooth_native/extconf.rb"]
12
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
13
+ s.require_paths = ["lib".freeze]
14
+ s.authors = ["Jason Hutchens".freeze]
15
+ s.date = "2021-01-04"
16
+ s.description = "Sooth is a simple stochastic predictive model.".freeze
17
+ s.email = "jasonhutchens@gmail.com".freeze
18
+ s.extensions = ["ext/sooth_native/extconf.rb".freeze]
19
19
  s.extra_rdoc_files = [
20
+ "CHANGELOG.md",
20
21
  "README.md"
21
22
  ]
22
23
  s.files = [
@@ -39,46 +40,43 @@ Gem::Specification.new do |s|
39
40
  "spec/predictor_spec.rb",
40
41
  "spec/spec_helper.rb"
41
42
  ]
42
- s.homepage = "http://github.com/jasonhutchens/sooth"
43
- s.licenses = ["UNLICENSE"]
44
- s.required_ruby_version = Gem::Requirement.new("~> 2.1")
45
- s.rubygems_version = "2.5.1"
46
- s.summary = "Sooth is a simple stochastic predictive model."
43
+ s.homepage = "http://github.com/jasonhutchens/sooth".freeze
44
+ s.licenses = ["UNLICENSE".freeze]
45
+ s.required_ruby_version = Gem::Requirement.new(">= 2.1".freeze)
46
+ s.rubygems_version = "3.0.9".freeze
47
+ s.summary = "Sooth is a simple stochastic predictive model.".freeze
47
48
 
48
49
  if s.respond_to? :specification_version then
49
50
  s.specification_version = 4
50
51
 
51
52
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
- s.add_development_dependency(%q<rspec>, ["~> 3.1"])
53
- s.add_development_dependency(%q<yard>, ["~> 0.8"])
54
- s.add_development_dependency(%q<rdoc>, ["~> 4.1"])
55
- s.add_development_dependency(%q<bundler>, ["~> 1.7"])
56
- s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
57
- s.add_development_dependency(%q<simplecov>, ["~> 0.9"])
58
- s.add_development_dependency(%q<byebug>, ["~> 8.2"])
59
- s.add_development_dependency(%q<rake-compiler>, ["~> 0.9"])
60
- s.add_development_dependency(%q<github_changelog_generator>, ["~> 1.4"])
53
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.10"])
54
+ s.add_development_dependency(%q<yard>.freeze, ["~> 0.9"])
55
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.3"])
56
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4"])
57
+ s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.21"])
58
+ s.add_development_dependency(%q<byebug>.freeze, ["~> 11.1"])
59
+ s.add_development_dependency(%q<rake-compiler>.freeze, ["~> 1.1"])
60
+ s.add_development_dependency(%q<github_changelog_generator>.freeze, ["~> 1.15"])
61
61
  else
62
- s.add_dependency(%q<rspec>, ["~> 3.1"])
63
- s.add_dependency(%q<yard>, ["~> 0.8"])
64
- s.add_dependency(%q<rdoc>, ["~> 4.1"])
65
- s.add_dependency(%q<bundler>, ["~> 1.7"])
66
- s.add_dependency(%q<jeweler>, ["~> 2.0"])
67
- s.add_dependency(%q<simplecov>, ["~> 0.9"])
68
- s.add_dependency(%q<byebug>, ["~> 8.2"])
69
- s.add_dependency(%q<rake-compiler>, ["~> 0.9"])
70
- s.add_dependency(%q<github_changelog_generator>, ["~> 1.4"])
62
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.10"])
63
+ s.add_dependency(%q<yard>.freeze, ["~> 0.9"])
64
+ s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
65
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
66
+ s.add_dependency(%q<simplecov>.freeze, ["~> 0.21"])
67
+ s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
68
+ s.add_dependency(%q<rake-compiler>.freeze, ["~> 1.1"])
69
+ s.add_dependency(%q<github_changelog_generator>.freeze, ["~> 1.15"])
71
70
  end
72
71
  else
73
- s.add_dependency(%q<rspec>, ["~> 3.1"])
74
- s.add_dependency(%q<yard>, ["~> 0.8"])
75
- s.add_dependency(%q<rdoc>, ["~> 4.1"])
76
- s.add_dependency(%q<bundler>, ["~> 1.7"])
77
- s.add_dependency(%q<jeweler>, ["~> 2.0"])
78
- s.add_dependency(%q<simplecov>, ["~> 0.9"])
79
- s.add_dependency(%q<byebug>, ["~> 8.2"])
80
- s.add_dependency(%q<rake-compiler>, ["~> 0.9"])
81
- s.add_dependency(%q<github_changelog_generator>, ["~> 1.4"])
72
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.10"])
73
+ s.add_dependency(%q<yard>.freeze, ["~> 0.9"])
74
+ s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
75
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
76
+ s.add_dependency(%q<simplecov>.freeze, ["~> 0.21"])
77
+ s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
78
+ s.add_dependency(%q<rake-compiler>.freeze, ["~> 1.1"])
79
+ s.add_dependency(%q<github_changelog_generator>.freeze, ["~> 1.15"])
82
80
  end
83
81
  end
84
82
 
@@ -213,4 +213,25 @@ describe Sooth::Predictor do
213
213
  expect(predictor.surprise(1, 3)).to eq(8)
214
214
  end
215
215
  end
216
+
217
+ describe "#frequency" do
218
+ it "returns zero for a new context" do
219
+ expect(predictor.frequency(1, 3)).to eq(0)
220
+ end
221
+
222
+ it "returns zero for a new event" do
223
+ predictor.observe(1, 3)
224
+ expect(predictor.frequency(1, 4)).to eq(0)
225
+ end
226
+
227
+ it "is one for a lone event" do
228
+ predictor.observe(1, 3)
229
+ expect(predictor.frequency(1, 3)).to eq(1)
230
+ end
231
+
232
+ it "is uniform for a uniform distribution" do
233
+ (1..100).each { |i| predictor.observe(1, i) }
234
+ expect(predictor.frequency(1, 3)).to eq(0.01)
235
+ end
236
+ end
216
237
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sooth
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Hutchens
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -16,132 +16,119 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '3.10'
20
20
  type: :development
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: '3.1'
26
+ version: '3.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: yard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.8'
33
+ version: '0.9'
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.8'
40
+ version: '0.9'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '4.1'
47
+ version: '6.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '4.1'
54
+ version: '6.3'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: juwelier
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.7'
61
+ version: '2.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.7'
69
- - !ruby/object:Gem::Dependency
70
- name: jeweler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '2.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '2.0'
68
+ version: '2.4'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: simplecov
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0.9'
75
+ version: '0.21'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0.9'
82
+ version: '0.21'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: byebug
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '8.2'
89
+ version: '11.1'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '8.2'
96
+ version: '11.1'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rake-compiler
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0.9'
103
+ version: '1.1'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0.9'
110
+ version: '1.1'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: github_changelog_generator
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
115
  - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: '1.4'
117
+ version: '1.15'
132
118
  type: :development
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: '1.4'
124
+ version: '1.15'
139
125
  description: Sooth is a simple stochastic predictive model.
140
126
  email: jasonhutchens@gmail.com
141
127
  executables: []
142
128
  extensions:
143
129
  - ext/sooth_native/extconf.rb
144
130
  extra_rdoc_files:
131
+ - CHANGELOG.md
145
132
  - README.md
146
133
  files:
147
134
  - CHANGELOG.md
@@ -166,13 +153,13 @@ homepage: http://github.com/jasonhutchens/sooth
166
153
  licenses:
167
154
  - UNLICENSE
168
155
  metadata: {}
169
- post_install_message:
156
+ post_install_message:
170
157
  rdoc_options: []
171
158
  require_paths:
172
159
  - lib
173
160
  required_ruby_version: !ruby/object:Gem::Requirement
174
161
  requirements:
175
- - - "~>"
162
+ - - ">="
176
163
  - !ruby/object:Gem::Version
177
164
  version: '2.1'
178
165
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -181,9 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
168
  - !ruby/object:Gem::Version
182
169
  version: '0'
183
170
  requirements: []
184
- rubyforge_project:
185
- rubygems_version: 2.5.1
186
- signing_key:
171
+ rubygems_version: 3.0.9
172
+ signing_key:
187
173
  specification_version: 4
188
174
  summary: Sooth is a simple stochastic predictive model.
189
175
  test_files: []