master
1require "rails_helper"
2
3describe WarmUp do
4 describe ".new" do
5 describe "squat" do
6 let(:squat) { build(:exercise, name: "Squat") }
7
8 (45..60).step(5).each do |target_weight|
9 it "has zero warm up sets" do
10 expect(WarmUp.new(squat, target_weight).sets).to be_empty
11 end
12 end
13
14 (65..400).step(5).each do |target_weight|
15 it "calculates the warm up sets at #{target_weight} lbs" do
16 sets = WarmUp.new(squat, target_weight).sets
17 expect(sets).to be_present
18 if target_weight >= 350
19 expect(sets.length).to eql(9)
20 elsif target_weight > 300
21 expect(sets.length).to eql(8)
22 elsif target_weight > 265
23 expect(sets.length).to eql(7)
24 elsif target_weight > 220
25 expect(sets.length).to eql(6)
26 elsif target_weight > 180
27 expect(sets.length).to eql(5)
28 elsif target_weight > 130
29 expect(sets.length).to eql(4)
30 elsif target_weight > 90
31 expect(sets.length).to eql(3)
32 elsif target_weight > 60
33 expect(sets.length).to eql(2)
34 end
35 end
36 end
37 end
38
39 describe "barbell row" do
40 let(:barbell_row) { build(:exercise, name: "Barbell Row") }
41
42 (45..100).step(5).each do |target_weight|
43 it "has zero warm up sets" do
44 expect(WarmUp.new(barbell_row, target_weight).sets).to be_empty
45 end
46 end
47
48 (105..400).step(5).each do |target_weight|
49 it "calculates the warm up sets for #{target_weight} lbs" do
50 sets = WarmUp.new(barbell_row, target_weight).sets
51 expect(sets).to be_present
52 if target_weight >= 350
53 expect(sets.length).to eql(6)
54 elsif target_weight > 300
55 expect(sets.length).to eql(5)
56 elsif target_weight > 265
57 expect(sets.length).to eql(4)
58 elsif target_weight > 220
59 expect(sets.length).to eql(3)
60 elsif target_weight > 180
61 expect(sets.length).to eql(2)
62 elsif target_weight > 100
63 expect(sets.length).to eql(1)
64 end
65 end
66 end
67 end
68
69 describe "deadlift" do
70 let(:deadlift) { build(:exercise, name: "Deadlift") }
71
72 (45..150).step(5).each do |target_weight|
73 it "has zero warm up sets at #{target_weight} lbs" do
74 expect(WarmUp.new(deadlift, target_weight).sets).to be_empty
75 end
76 end
77
78 (155..400).step(5).each do |target_weight|
79 it "calculates the warm up sets for #{target_weight} lbs" do
80 sets = WarmUp.new(deadlift, target_weight).sets
81 expect(sets).to be_present
82 if target_weight >= 350
83 expect(sets.length).to eql(6)
84 elsif target_weight > 300
85 expect(sets.length).to eql(5)
86 elsif target_weight > 265
87 expect(sets.length).to eql(4)
88 elsif target_weight > 220
89 expect(sets.length).to eql(3)
90 elsif target_weight > 170
91 expect(sets.length).to eql(2)
92 elsif target_weight > 100
93 expect(sets.length).to eql(1)
94 else
95 puts [target_weight, sets.map(&:target_weight)].inspect
96 end
97 end
98 end
99 end
100 end
101end