calcpace 1.1.0 → 1.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4076fd00047c9b763ee7c4d38d5b3c75b638ec851c0af06895c70d050a122b10
4
- data.tar.gz: 2c69b89a9f5508cd58a5f34b33f67517f6ac9a37218ae0e01fbbed600a269712
3
+ metadata.gz: '08aafc87c8fa3b75db3dfac8e186f803cbfec584991945e9849648a0d91c7341'
4
+ data.tar.gz: 886d0b4b83bc2bbc07b3f2dc5d4b3b605459cc15df13a51c22e4ba87f2620ff4
5
5
  SHA512:
6
- metadata.gz: '029f28e39b899c3d2ddc13c873db6ed76a3a3b743080c4c167263a592550c56f1dd68bb19e4bb353c15846c63a339d6ba07d7e1a33c1ce83ff8d3159f059d5e7'
7
- data.tar.gz: 2878a6024448fd28264e9b7df4d26fc19f2f41d02016dab82caa7c87f46b8b3bce0de55e5edaff627ca5ffa1b945e2461e5a3d49188df12f533a0cf003011eeb
6
+ metadata.gz: 0e3b69e165c445f5c2885c91a8b866020095ba3de87431817eed0d75df2f6f3e65da15cb73205904cff8c3844d590ce3b3edeabdf91cd74f31bbeafe84ac085c
7
+ data.tar.gz: 311f84fa56b4f5d3bec6e0c16cac2d6650a488828058f169c8bf1f12c410bff8a91c9be667ffd30ed6dcf40a856f5c64a63aa4b9386095f9a0fdbd7c83548844
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bigdecimal'
2
4
 
3
5
  module Calculator
@@ -37,4 +39,4 @@ module Calculator
37
39
  end
38
40
  time_seconds / pace_seconds
39
41
  end
40
- end
42
+ end
@@ -1,44 +1,44 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bigdecimal'
4
-
5
- module Converter
6
- KM_TO_MI = BigDecimal("0.621371")
7
- MI_TO_KM = BigDecimal("1.60934")
8
-
9
- def to_seconds(time)
10
- check_time(time)
11
- convert_to_seconds(time)
12
- end
13
-
14
- def to_clocktime(seconds)
15
- check_integer(seconds)
16
- convert_to_clocktime(seconds)
17
- end
18
-
19
- def convert(distance, unit, round_limit = 2)
20
- check_distance(distance)
21
- check_unit(unit)
22
- check_integer(round_limit)
23
- convert_the_distance(BigDecimal(distance.to_s), unit, round_limit)
24
- end
25
-
26
- def convert_to_seconds(time)
27
- hour, minute, seconds = time.split(':').map(&:to_i)
28
- (hour * 3600) + (minute * 60) + seconds
29
- end
30
-
31
- def convert_to_clocktime(seconds)
32
- format = seconds >= 86_400 ? '%d %H:%M:%S' : '%H:%M:%S'
33
- Time.at(seconds.to_i).utc.strftime(format)
34
- end
35
-
36
- def convert_the_distance(distance, unit, round_limit = 2)
37
- case unit
38
- when 'km'
39
- (distance * KM_TO_MI).round(round_limit)
40
- when 'mi'
41
- (distance * MI_TO_KM).round(round_limit)
42
- end
43
- end
44
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'bigdecimal'
4
+
5
+ module Converter
6
+ KM_TO_MI = BigDecimal('0.621371')
7
+ MI_TO_KM = BigDecimal('1.60934')
8
+
9
+ def to_seconds(time)
10
+ check_time(time)
11
+ convert_to_seconds(time)
12
+ end
13
+
14
+ def to_clocktime(seconds)
15
+ check_integer(seconds)
16
+ convert_to_clocktime(seconds)
17
+ end
18
+
19
+ def convert(distance, unit, round_limit = 2)
20
+ check_distance(distance)
21
+ check_unit(unit)
22
+ check_integer(round_limit)
23
+ convert_the_distance(BigDecimal(distance.to_s), unit, round_limit)
24
+ end
25
+
26
+ def convert_to_seconds(time)
27
+ hour, minute, seconds = time.split(':').map(&:to_i)
28
+ (hour * 3600) + (minute * 60) + seconds
29
+ end
30
+
31
+ def convert_to_clocktime(seconds)
32
+ format = seconds >= 86_400 ? '%d %H:%M:%S' : '%H:%M:%S'
33
+ Time.at(seconds.to_i).utc.strftime(format)
34
+ end
35
+
36
+ def convert_the_distance(distance, unit, round_limit = 2)
37
+ case unit
38
+ when 'km'
39
+ (distance * KM_TO_MI).round(round_limit)
40
+ when 'mi'
41
+ (distance * MI_TO_KM).round(round_limit)
42
+ end
43
+ end
44
+ end
@@ -1,68 +1,68 @@
1
- # frozen_string_literal: true
2
-
3
- require 'minitest/autorun'
4
- require 'bigdecimal'
5
- require_relative '../../lib/calcpace'
6
-
7
- class TestCalculator < Minitest::Test
8
- def setup
9
- @checker = Calcpace.new
10
- end
11
-
12
- def test_pace
13
- assert_raises(RuntimeError) { @checker.pace('', 10) }
14
- assert_raises(RuntimeError) { @checker.pace('invalid', 10) }
15
- assert_raises(RuntimeError) { @checker.pace('00:00:00', 0) }
16
- assert_raises(RuntimeError) { @checker.pace('00:00:00', -1) }
17
- assert_equal '00:06:00', @checker.pace('01:00:00', 10)
18
- assert_equal '00:07:54', @checker.pace('01:37:21', 12.3)
19
- end
20
-
21
- def test_pace_without_bigdecimal_precision
22
- assert_equal '00:07:54', @checker.pace('01:37:21', 12.3, false)
23
- end
24
-
25
- def test_pace_seconds
26
- assert_raises(RuntimeError) { @checker.pace_seconds('', 10) }
27
- assert_raises(RuntimeError) { @checker.pace_seconds('invalid', 10) }
28
- assert_raises(RuntimeError) { @checker.pace_seconds('00:00:00', 0) }
29
- assert_raises(RuntimeError) { @checker.pace_seconds('00:00:00', -1) }
30
- assert_equal BigDecimal('474.8780487804878'), @checker.pace_seconds('01:37:21', 12.3)
31
- end
32
-
33
- def test_pace_seconds_with_bigdecimal_precision
34
- assert_equal BigDecimal('0.474878048780487804878048780487804878049e3'), @checker.pace_seconds('01:37:21', 12.3, true)
35
- end
36
-
37
- def test_total_time
38
- assert_raises(RuntimeError) { @checker.total_time('', 10) }
39
- assert_raises(RuntimeError) { @checker.total_time('invalid', 10) }
40
- assert_raises(RuntimeError) { @checker.total_time('00:00:00', 0) }
41
- assert_raises(RuntimeError) { @checker.total_time('00:00:00', -1) }
42
- assert_equal '01:00:00', @checker.total_time('00:05:00', 12)
43
- end
44
-
45
- def test_total_time_seconds
46
- assert_raises(RuntimeError) { @checker.total_time_seconds('', 10) }
47
- assert_raises(RuntimeError) { @checker.total_time_seconds('invalid', 10) }
48
- assert_raises(RuntimeError) { @checker.total_time_seconds('00:00:00', 0) }
49
- assert_raises(RuntimeError) { @checker.total_time_seconds('00:00:00', -1) }
50
- assert_equal 3600, @checker.total_time_seconds('00:05:00', 12)
51
- assert_equal 71844.3, @checker.total_time_seconds('01:37:21', 12.3)
52
- end
53
-
54
- def test_total_time_seconds_with_bigdecimal_precision
55
- assert_equal BigDecimal('0.718443e5'), @checker.total_time_seconds('01:37:21', 12.3, true)
56
- end
57
-
58
- def test_distance
59
- assert_raises(RuntimeError) { @checker.distance('', '00:05:00') }
60
- assert_raises(RuntimeError) { @checker.distance('01:00:00', '') }
61
- assert_equal 18.0, @checker.distance('01:30:00', '00:05:00')
62
- assert_equal 15.0, @checker.distance('01:37:21', '00:06:17')
63
- end
64
-
65
- def test_distance_with_bigdecimal_precision
66
- assert_equal BigDecimal('0.15493368700265251989389920424403183024e2'), @checker.distance('01:37:21', '00:06:17', true)
67
- end
68
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest/autorun'
4
+ require 'bigdecimal'
5
+ require_relative '../../lib/calcpace'
6
+
7
+ class TestCalculator < Minitest::Test
8
+ def setup
9
+ @checker = Calcpace.new
10
+ end
11
+
12
+ def test_pace
13
+ assert_raises(RuntimeError) { @checker.pace('', 10) }
14
+ assert_raises(RuntimeError) { @checker.pace('invalid', 10) }
15
+ assert_raises(RuntimeError) { @checker.pace('00:00:00', 0) }
16
+ assert_raises(RuntimeError) { @checker.pace('00:00:00', -1) }
17
+ assert_equal '00:06:00', @checker.pace('01:00:00', 10)
18
+ assert_equal '00:07:54', @checker.pace('01:37:21', 12.3)
19
+ end
20
+
21
+ def test_pace_without_bigdecimal_precision
22
+ assert_equal '00:07:54', @checker.pace('01:37:21', 12.3, false)
23
+ end
24
+
25
+ def test_pace_seconds
26
+ assert_raises(RuntimeError) { @checker.pace_seconds('', 10) }
27
+ assert_raises(RuntimeError) { @checker.pace_seconds('invalid', 10) }
28
+ assert_raises(RuntimeError) { @checker.pace_seconds('00:00:00', 0) }
29
+ assert_raises(RuntimeError) { @checker.pace_seconds('00:00:00', -1) }
30
+ assert_equal BigDecimal('474.8780487804878'), @checker.pace_seconds('01:37:21', 12.3)
31
+ end
32
+
33
+ def test_pace_seconds_with_bigdecimal_precision
34
+ assert_equal BigDecimal('0.474878048780487804878048780487804878049e3'), @checker.pace_seconds('01:37:21', 12.3, true)
35
+ end
36
+
37
+ def test_total_time
38
+ assert_raises(RuntimeError) { @checker.total_time('', 10) }
39
+ assert_raises(RuntimeError) { @checker.total_time('invalid', 10) }
40
+ assert_raises(RuntimeError) { @checker.total_time('00:00:00', 0) }
41
+ assert_raises(RuntimeError) { @checker.total_time('00:00:00', -1) }
42
+ assert_equal '01:00:00', @checker.total_time('00:05:00', 12)
43
+ end
44
+
45
+ def test_total_time_seconds
46
+ assert_raises(RuntimeError) { @checker.total_time_seconds('', 10) }
47
+ assert_raises(RuntimeError) { @checker.total_time_seconds('invalid', 10) }
48
+ assert_raises(RuntimeError) { @checker.total_time_seconds('00:00:00', 0) }
49
+ assert_raises(RuntimeError) { @checker.total_time_seconds('00:00:00', -1) }
50
+ assert_equal 3600, @checker.total_time_seconds('00:05:00', 12)
51
+ assert_equal 71_844.3, @checker.total_time_seconds('01:37:21', 12.3)
52
+ end
53
+
54
+ def test_total_time_seconds_with_bigdecimal_precision
55
+ assert_equal BigDecimal('0.718443e5'), @checker.total_time_seconds('01:37:21', 12.3, true)
56
+ end
57
+
58
+ def test_distance
59
+ assert_raises(RuntimeError) { @checker.distance('', '00:05:00') }
60
+ assert_raises(RuntimeError) { @checker.distance('01:00:00', '') }
61
+ assert_equal 18.0, @checker.distance('01:30:00', '00:05:00')
62
+ assert_equal 15.0, @checker.distance('01:37:21', '00:06:17')
63
+ end
64
+
65
+ def test_distance_with_bigdecimal_precision
66
+ assert_equal BigDecimal('0.15493368700265251989389920424403183024e2'), @checker.distance('01:37:21', '00:06:17', true)
67
+ end
68
+ end
@@ -1,49 +1,49 @@
1
- # frozen_string_literal: true
2
-
3
- require 'minitest/autorun'
4
- require_relative '../../lib/calcpace'
5
-
6
- class TestConverter < Minitest::Test
7
- def setup
8
- @checker = Calcpace.new
9
- end
10
-
11
- def test_convert_to_seconds
12
- assert_equal 4262, @checker.convert_to_seconds('01:11:02')
13
- end
14
-
15
- def test_to_seconds
16
- assert_equal 3600, @checker.to_seconds('01:00:00')
17
- assert_raises(RuntimeError) { @checker.to_seconds('invalid') }
18
- end
19
-
20
- def test_convert_to_clocktime
21
- assert_equal '01:11:02', @checker.convert_to_clocktime(4262)
22
- end
23
-
24
- def test_to_clocktime
25
- assert_equal '01:00:00', @checker.to_clocktime(3600)
26
- assert_equal '02 01:00:00', @checker.to_clocktime(90000)
27
- assert_raises(RuntimeError) { @checker.to_clocktime(-1) }
28
- assert_raises(RuntimeError) { @checker.to_clocktime(0) }
29
- assert_raises(RuntimeError) { @checker.to_clocktime('invalid') }
30
- end
31
-
32
- def test_convert_the_distance
33
- assert_equal 6.21, @checker.convert_the_distance(10, 'km')
34
- assert_equal 6.2, @checker.convert_the_distance(10, 'km', 1)
35
- assert_equal 6.214, @checker.convert_the_distance(10, 'km', 3)
36
- assert_equal 16.09, @checker.convert_the_distance(10, 'mi')
37
- end
38
-
39
- def test_convert
40
- assert_equal 6.21, @checker.convert(10, 'km')
41
- assert_equal 16.09, @checker.convert(10, 'mi')
42
- assert_equal 6.2, @checker.convert(10, 'km', 1)
43
- assert_raises(RuntimeError) { @checker.convert(10, 'invalid') }
44
- assert_raises(RuntimeError) { @checker.convert(-1, 'km') }
45
- assert_raises(RuntimeError) { @checker.convert(10, 'km', -2) }
46
- assert_raises(RuntimeError) { @checker.convert(10, 'km', 0) }
47
- assert_raises(RuntimeError) { @checker.convert(10, 'km', 'invalid') }
48
- end
49
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest/autorun'
4
+ require_relative '../../lib/calcpace'
5
+
6
+ class TestConverter < Minitest::Test
7
+ def setup
8
+ @checker = Calcpace.new
9
+ end
10
+
11
+ def test_convert_to_seconds
12
+ assert_equal 4262, @checker.convert_to_seconds('01:11:02')
13
+ end
14
+
15
+ def test_to_seconds
16
+ assert_equal 3600, @checker.to_seconds('01:00:00')
17
+ assert_raises(RuntimeError) { @checker.to_seconds('invalid') }
18
+ end
19
+
20
+ def test_convert_to_clocktime
21
+ assert_equal '01:11:02', @checker.convert_to_clocktime(4262)
22
+ end
23
+
24
+ def test_to_clocktime
25
+ assert_equal '01:00:00', @checker.to_clocktime(3600)
26
+ assert_equal '02 01:00:00', @checker.to_clocktime(90_000)
27
+ assert_raises(RuntimeError) { @checker.to_clocktime(-1) }
28
+ assert_raises(RuntimeError) { @checker.to_clocktime(0) }
29
+ assert_raises(RuntimeError) { @checker.to_clocktime('invalid') }
30
+ end
31
+
32
+ def test_convert_the_distance
33
+ assert_equal 6.21, @checker.convert_the_distance(10, 'km')
34
+ assert_equal 6.2, @checker.convert_the_distance(10, 'km', 1)
35
+ assert_equal 6.214, @checker.convert_the_distance(10, 'km', 3)
36
+ assert_equal 16.09, @checker.convert_the_distance(10, 'mi')
37
+ end
38
+
39
+ def test_convert
40
+ assert_equal 6.21, @checker.convert(10, 'km')
41
+ assert_equal 16.09, @checker.convert(10, 'mi')
42
+ assert_equal 6.2, @checker.convert(10, 'km', 1)
43
+ assert_raises(RuntimeError) { @checker.convert(10, 'invalid') }
44
+ assert_raises(RuntimeError) { @checker.convert(-1, 'km') }
45
+ assert_raises(RuntimeError) { @checker.convert(10, 'km', -2) }
46
+ assert_raises(RuntimeError) { @checker.convert(10, 'km', 0) }
47
+ assert_raises(RuntimeError) { @checker.convert(10, 'km', 'invalid') }
48
+ end
49
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calcpace
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joao Gilberto Saraiva