Sha256: 8317f89ecb4dbdcb4a8857b57f67b68649727b710ce0dd02159ead60df1c5701

Contents?: true

Size: 1.88 KB

Versions: 23

Compression:

Stored size: 1.88 KB

Contents

# frozen_string_literal: true

module Runby
  module RunTypes
    # Combines the fast and slow tempo runs into one convenient range of paces
    class TempoRun < RunType
      attr_reader :slow_pace_calculator, :fast_pace_calculator

      def description
        'Tempo Run'
      end

      def explanation
        'Ran at a comfortably hard pace that you could maintain for about an hour, if pressed. However, tempo runs are interval workouts, so you won\'t run for longer than 15-40 minutes per repetition'
      end

      def initialize
        @fast_pace_calculator = PaceCalculator.new(GoldenPaces.fast, 4.025)
        @slow_pace_calculator = PaceCalculator.new(GoldenPaces.slow, 3.725)
      end

      def lookup_pace(five_k_time, distance_units = :km)
        fast = @fast_pace_calculator.calc(five_k_time, distance_units)
        slow = @slow_pace_calculator.calc(five_k_time, distance_units)
        PaceRange.new(fast, slow)
      end

      # Used in testing, contains hashes mapping 5K race times with the recommended pace-per-km for this run type.
      class GoldenPaces
        def self.fast
          GoldenPaceSet.new('14:00': '03:07',
                            '15:00': '03:20',
                            '20:00': '04:21',
                            '25:00': '05:20',
                            '30:00': '06:19',
                            '35:00': '07:16',
                            '40:00': '08:12',
                            '42:00': '08:35')
        end

        def self.slow
          GoldenPaceSet.new('14:00': '03:18',
                            '15:00': '03:31',
                            '20:00': '04:35',
                            '25:00': '05:37',
                            '30:00': '06:38',
                            '35:00': '07:38',
                            '40:00': '08:36',
                            '42:00': '08:59')
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
runby_pace-0.62.7 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.62.5 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.62.4 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.62.3 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.62.2 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.2.50.111 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.160 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.159 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.158 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.157 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.156 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.155 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.154 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.61.153 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.6.152 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.6.151 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.6.150 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.6.149 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.6.148 lib/runby_pace/run_types/tempo_run.rb
runby_pace-0.6.147 lib/runby_pace/run_types/tempo_run.rb