fixed_point 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.md CHANGED
@@ -1,6 +1,17 @@
1
1
  HISTORY/Changelog
2
2
  =================
3
3
 
4
+ 0.2.1
5
+ -----
6
+
7
+ Added hex= method for setting fixed point data via hex
8
+
9
+ 0.2.0
10
+ -----
11
+
12
+ Added to_s method on numbers. Output is now the same as calling .to_f.to_s
13
+
14
+
4
15
  0.1.1
5
16
  -----
6
17
 
data/Rakefile CHANGED
@@ -2,10 +2,100 @@ require 'rspec/core/rake_task'
2
2
 
3
3
  file_list = FileList['spec/*_spec.rb']
4
4
 
5
- RSpec::Core::RakeTask.new('spec') do |t|
6
- t.pattern = file_list
7
- t.rspec_opts = ["--colour", "--format progress"]
5
+ namespace :test do
6
+ RSpec::Core::RakeTask.new('spec') do |t|
7
+ t.pattern = file_list
8
+ t.rspec_opts = ["--colour", "--format progress"]
9
+ end
8
10
  end
9
-
10
11
  desc 'Default: run specs.'
11
- task :default => 'spec'
12
+ task :default => 'test:spec'
13
+
14
+ namespace :deploy do
15
+
16
+ ## name and versio taken from
17
+ ## https://github.com/mojombo/rakegem
18
+ def name
19
+ @name ||= Dir['*.gemspec'].first.split('.').first
20
+ end
21
+
22
+ def version
23
+ line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
24
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
25
+ end
26
+
27
+ #Dir.chdir( './lib/')
28
+ #puts require NAME
29
+ #Dir.chdir( './../')
30
+
31
+
32
+ desc 'Run Spec'
33
+ #file_list = FileList['spec/*_spec.rb']
34
+ html_path = "spec_results.html"
35
+ RSpec::Core::RakeTask.new('run_spec') do |t|
36
+ t.pattern = file_list
37
+ t.rspec_opts = ["--format html", "--out #{html_path}"]
38
+ end
39
+
40
+
41
+ desc 'Check that the spec passes'
42
+ task :spec_passes => :run_spec do
43
+ # find out how many errors were found
44
+ html = open(html_path).read
45
+ examples = html.match(/(\d+) examples/)[0].to_i rescue 0
46
+ failures = html.match(/(\d+) failures/)[0].to_i rescue 0
47
+ pending = html.match(/(\d+) pending/)[0].to_i rescue 0
48
+
49
+ if failures.zero?
50
+ puts "0 failures! #{examples} run, #{pending} pending"
51
+ else
52
+ $stderr.puts "\aSpecs did not pass deploy aborted!"
53
+ $stderr.puts "View spec results at #{File.expand_path(html_path)}"
54
+ $stderr.puts
55
+ $stderr.puts "#{failures} failures! #{examples} run, #{pending} pending"
56
+ exit -1
57
+ end
58
+ end
59
+
60
+ task :build_gem do
61
+ puts "Building Gem"
62
+ `gem build #{name}.gemspec`
63
+ unless $?.success?
64
+ $stderr.puts "Gem Build Failed"
65
+ exit -1
66
+ end
67
+
68
+ end
69
+
70
+ task :push_gem do
71
+ puts "Pushing Gem #{name}-#{version}"
72
+ #`gem push`
73
+ unless $?.success?
74
+ $stderr.puts "Gem Push Failed"
75
+ exit -1
76
+ end
77
+ end
78
+
79
+ task :create_git_tag do
80
+ puts "Tagging #{name}-#{version}"
81
+ #`git tag -a #{version} -m 'Tagging gem release #{version}'`
82
+ unless $?.success?
83
+ $stderr.puts "Tagging Git Failed"
84
+ exit -1
85
+ end
86
+ end
87
+
88
+ task :push_tag do
89
+ puts "Push Tag #{version}"
90
+ #`git push origin #{version}`
91
+ unless $?.success?
92
+ $stderr.puts "Pushing Git Tag Failed"
93
+ exit -1
94
+ end
95
+ end
96
+
97
+ task :gem => [:spec_passes, :build_gem, :push_gem, :create_git_tag, :push_tag] do
98
+ puts "Deployed #{name} Version #{version} !"
99
+ end
100
+
101
+ end
data/lib/fixed_point.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module FixedPoint
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
4
4
 
5
5
  begin
@@ -77,6 +77,10 @@ module FixedPoint
77
77
  (@quantised - to_i)
78
78
  end
79
79
 
80
+ def to_s
81
+ to_f.to_s
82
+ end
83
+
80
84
  ####################################
81
85
  ### Calculate Binary format
82
86
  ####################################
@@ -16,6 +16,7 @@ describe FixedPoint do
16
16
 
17
17
  fixt.source.should == 0.0
18
18
  fixt.to_f.should == 0.0
19
+ fixt.to_s.should == "0.0"
19
20
  fixt.to_i.should == 0
20
21
  fixt.frac.should == 0.0
21
22
  fixt.to_h.should == "00000000"
@@ -28,6 +29,7 @@ it "Integers 0 " do
28
29
 
29
30
  fixt.source.should == 7.0
30
31
  fixt.to_f.should == 7.0
32
+ fixt.to_s.should == "7.0"
31
33
  fixt.to_i.should == 7
32
34
  fixt.frac.should == 0.0
33
35
  fixt.to_h.should == "07"
@@ -40,6 +42,7 @@ it "Different Decimal Mark _ instead of ." do
40
42
 
41
43
  fixt.source.should == 0.0
42
44
  fixt.to_f.should == 0.0
45
+ fixt.to_s.should == "0.0"
43
46
  fixt.to_i.should == 0
44
47
  fixt.frac.should == 0.0
45
48
  fixt.to_h.should == "00000000"
@@ -55,6 +58,7 @@ end
55
58
 
56
59
  fixt.source.should == 0.0
57
60
  fixt.to_f.should == 0.0
61
+ fixt.to_s.should == "0.0"
58
62
  fixt.to_i.should == 0
59
63
  fixt.frac.should == 0.0
60
64
  #Calculate hex length and fill with 0's
@@ -76,8 +80,9 @@ it "Zero fractional bits " do
76
80
 
77
81
  fixt.source.should == 0.0
78
82
  fixt.to_f.should == 0.0
83
+ fixt.to_s.should == "0.0"
79
84
  fixt.to_i.should == 0
80
- fixt.frac.should == 0.0
85
+ fixt.frac.should == 0.0
81
86
  fixt.to_h.should == "000"
82
87
  fixt.to_b.should == "000000000000"
83
88
  end
@@ -88,8 +93,9 @@ it "returns 2.5 for initalise of 2.5" do
88
93
 
89
94
  fixt.source.should == 2.5
90
95
  fixt.to_f.should == 2.5
96
+ fixt.to_s.should == "2.5"
91
97
  fixt.to_i.should == 2
92
- fixt.frac.should == 0.5
98
+ fixt.frac.should == 0.5
93
99
  fixt.to_h.should == "00280000"
94
100
  fixt.to_b.should == "000000000010.10000000000000000000"
95
101
  end
@@ -101,8 +107,9 @@ it "returns 2.5 for initalise of 2.5" do
101
107
 
102
108
  fixt.source.should == 2.501
103
109
  fixt.to_f.should == 2.5
110
+ fixt.to_s.should == "2.5"
104
111
  fixt.to_i.should == 2
105
- fixt.frac.should == 0.5
112
+ fixt.frac.should == 0.5
106
113
  fixt.to_h.should == "0005"
107
114
  fixt.to_b.should == "000000000010.1"
108
115
  end
@@ -114,12 +121,13 @@ it "returns 2.5 for initalise of 2.5" do
114
121
  format = FixedPoint::Format.new(1, 4, 0)
115
122
  fixt = FixedPoint::Number.new(2**3, format, "_")
116
123
 
117
- fixt.source.should == 2**3
118
- fixt.to_f.should == 2**3-1
119
- fixt.to_i.should == 2**3-1
120
- fixt.frac.should == 0.0
121
- fixt.to_h.should == "7"
122
- fixt.to_b.should == "0111"
124
+ fixt.source.should == 2**3
125
+ fixt.to_f.should == 2**3-1
126
+ fixt.to_s.should == "7.0"
127
+ fixt.to_i.should == 2**3-1
128
+ fixt.frac.should == 0.0
129
+ fixt.to_h.should == "7"
130
+ fixt.to_b.should == "0111"
123
131
  fixt.overflow?.should == true
124
132
  fixt.underflow?.should == false
125
133
  end
@@ -130,6 +138,7 @@ it "returns 2.5 for initalise of 2.5" do
130
138
 
131
139
  fixt.source.should == 2**11
132
140
  fixt.to_f.should == 2**11-1
141
+ fixt.to_s.should == "2047.0"
133
142
  fixt.to_i.should == 2**11-1
134
143
  fixt.frac.should == 0.0
135
144
  fixt.to_h.should == "7ff"
@@ -146,6 +155,7 @@ it "returns 2.5 for initalise of 2.5" do
146
155
 
147
156
  fixt.source.should == 2**11
148
157
  fixt.to_f.should == 2**11 -1 + max_fractional_value
158
+ fixt.to_s.should == "2047.9375"
149
159
  fixt.to_i.should == 2**11 -1
150
160
  fixt.frac.should == max_fractional_value
151
161
  fixt.to_h.should == "7fff"
@@ -163,6 +173,7 @@ it "returns 2.5 for initalise of 2.5" do
163
173
  max_fractional_value = (1.0/2) + (1.0/4) + (1.0/8) + (1.0/16)
164
174
 
165
175
  fixt.to_f.should == 2**11 -1 + max_fractional_value
176
+ fixt.to_s.should == "2047.9375"
166
177
  fixt.to_i.should == 2**11 -1
167
178
  fixt.frac.should == max_fractional_value
168
179
  fixt.to_h.should == "7fff"
@@ -181,6 +192,7 @@ it "returns 2.5 for initalise of 2.5" do
181
192
 
182
193
  fixt.source.should == -2**11
183
194
  fixt.to_f.should == -2**11
195
+ fixt.to_s.should == "-2048"
184
196
  fixt.to_i.should == -2**11
185
197
  fixt.frac.should == 0.0
186
198
  fixt.to_h.should == "800"
@@ -195,6 +207,7 @@ it "returns 2.5 for initalise of 2.5" do
195
207
 
196
208
  fixt.source.should == -2**11-1
197
209
  fixt.to_f.should == -2**11
210
+ fixt.to_s.should == "-2048"
198
211
  fixt.to_i.should == -2**11
199
212
  fixt.frac.should == 0.0
200
213
  fixt.to_h.should == "800"
@@ -209,6 +222,7 @@ it "returns 2.5 for initalise of 2.5" do
209
222
 
210
223
  fixt.source.should == -2**11-1
211
224
  fixt.to_f.should == -2**11
225
+ fixt.to_s.should == "-2048"
212
226
  fixt.to_i.should == -2**11
213
227
  fixt.frac.should == 0.0
214
228
  fixt.to_h.should == "8000"
@@ -224,6 +238,7 @@ it "returns 2.5 for initalise of 2.5" do
224
238
 
225
239
  fixt.source.should == -2**17
226
240
  fixt.to_f.should == -2**11
241
+ fixt.to_s.should == "-2048"
227
242
  fixt.to_i.should == -2**11
228
243
  fixt.frac.should == 0.0
229
244
  fixt.to_h.should == "8000"
@@ -239,6 +254,7 @@ it "returns 2.5 for initalise of 2.5" do
239
254
  fixt.binary = "011_01"
240
255
  fixt.source.should == 3.25
241
256
  fixt.to_f.should == 3.25
257
+ fixt.to_s.should == "3.25"
242
258
  fixt.to_i.should == 3
243
259
  fixt.frac.should == 0.25
244
260
  fixt.to_h.should == "0d"
@@ -253,6 +269,7 @@ it "returns 2.5 for initalise of 2.5" do
253
269
  fixt.binary = "0_1"
254
270
  fixt.source.should == 0.5
255
271
  fixt.to_f.should == 0.5
272
+ fixt.to_s.should == "0.5"
256
273
  fixt.to_i.should == 0
257
274
  fixt.frac.should == 0.5
258
275
  fixt.to_h.should == "1"
@@ -267,6 +284,7 @@ it "returns 2.5 for initalise of 2.5" do
267
284
  fixt.binary = "1000_1"
268
285
  fixt.source.should == -7.5
269
286
  fixt.to_f.should == -7.5
287
+ fixt.to_s.should == "-7.5"
270
288
  fixt.to_i.should == -7
271
289
  fixt.frac.should == -0.5
272
290
  fixt.to_h.should == "11"
@@ -282,6 +300,7 @@ it "returns 2.5 for initalise of 2.5" do
282
300
  fixt.binary = "1000_1"
283
301
  fixt.source.should == 8.5
284
302
  fixt.to_f.should == 8.5
303
+ fixt.to_s.should == "8.5"
285
304
  fixt.to_i.should == 8
286
305
  fixt.frac.should == 0.5
287
306
  fixt.to_h.should == "11"
@@ -297,6 +316,7 @@ it "returns 2.5 for initalise of 2.5" do
297
316
  fixt.binary = "1000_1"
298
317
  fixt.source.should == 8.5
299
318
  fixt.to_f.should == 8.5
319
+ fixt.to_s.should == "8.5"
300
320
  fixt.to_i.should == 8
301
321
  fixt.frac.should == 0.5
302
322
  fixt.to_h.should == "11"
metadata CHANGED
@@ -1,33 +1,22 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: fixed_point
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Morgan Prior
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-22 00:00:00 +00:00
19
- default_executable:
12
+ date: 2012-05-10 00:00:00.000000000 Z
20
13
  dependencies: []
21
-
22
14
  description: Fixed Point numerical type for simulating fixed point calculations
23
15
  email: fixed_point_gem@amaras-tech.co.uk
24
16
  executables: []
25
-
26
17
  extensions: []
27
-
28
18
  extra_rdoc_files: []
29
-
30
- files:
19
+ files:
31
20
  - LICENSE
32
21
  - README.md
33
22
  - HISTORY.md
@@ -40,39 +29,28 @@ files:
40
29
  - spec/fixed_point_negative_spec.rb
41
30
  - spec/fixed_point_spec.rb
42
31
  - spec/spec_helper.rb
43
- has_rdoc: true
44
32
  homepage: http://amaras-tech.co.uk/software/fixed_point
45
33
  licenses: []
46
-
47
34
  post_install_message:
48
35
  rdoc_options: []
49
-
50
- require_paths:
36
+ require_paths:
51
37
  - lib
52
- required_ruby_version: !ruby/object:Gem::Requirement
38
+ required_ruby_version: !ruby/object:Gem::Requirement
53
39
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
61
- required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
45
  none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- hash: 3
67
- segments:
68
- - 0
69
- version: "0"
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
70
50
  requirements: []
71
-
72
51
  rubyforge_project:
73
- rubygems_version: 1.6.2
52
+ rubygems_version: 1.8.23
74
53
  signing_key:
75
54
  specification_version: 3
76
55
  summary: Fixed Point numerical type
77
56
  test_files: []
78
-