View raw

1 " 2 A MFTRepSchemeTest is a test class for testing the behavior of MFTRepScheme 3 " 4 Class { 5 #name : 'MFTRepSchemeTest', 6 #superclass : 'TestCase', 7 #category : 'MyFitnessTracker-Core-Tests-Prescription', 8 #package : 'MyFitnessTracker-Core-Tests', 9 #tag : 'Prescription' 10 } 11 12 { #category : 'tests' } 13 MFTRepSchemeTest >> testCanonicalNameUsesRepRange [ 14 15 | repScheme | 16 repScheme := MFTRepScheme from: 6 to: 10. 17 18 self assert: repScheme canonicalName equals: '6–10' 19 ] 20 21 { #category : 'tests' } 22 MFTRepSchemeTest >> testFromToSetsMinimumAndMaximumReps [ 23 24 | repScheme | 25 repScheme := MFTRepScheme from: 6 to: 10. 26 27 self assert: repScheme minReps equals: 6. 28 self assert: repScheme maxReps equals: 10 29 ] 30 31 { #category : 'tests' } 32 MFTRepSchemeTest >> testIncludesAnswersTrueForMaximumBoundary [ 33 34 | repScheme | 35 repScheme := MFTRepScheme from: 6 to: 10. 36 37 self assert: (repScheme includes: 10) 38 ] 39 40 { #category : 'tests' } 41 MFTRepSchemeTest >> testIncludesAnswersTrueForMinimumBoundary [ 42 43 | repScheme | 44 repScheme := MFTRepScheme from: 6 to: 10. 45 46 self assert: (repScheme includes: 6) 47 ] 48 49 { #category : 'tests' } 50 MFTRepSchemeTest >> testIncludesReps [ 51 52 | scheme | 53 scheme := MFTRepScheme from: 6 to: 10. 54 self 55 assert: (scheme includes: 6); 56 assert: (scheme includes: 10); 57 deny: (scheme includes: 5); 58 deny: (scheme includes: 11) 59 ] 60 61 { #category : 'tests' } 62 MFTRepSchemeTest >> testMaxRepsAccessor [ 63 64 | repScheme | 65 repScheme := MFTRepScheme new. 66 67 repScheme maxReps: 10. 68 69 self assert: repScheme maxReps equals: 10 70 ] 71 72 { #category : 'tests' } 73 MFTRepSchemeTest >> testMinRepsAccessor [ 74 75 | repScheme | 76 repScheme := MFTRepScheme new. 77 78 repScheme minReps: 6. 79 80 self assert: repScheme minReps equals: 6 81 ] 82 83 { #category : 'tests' } 84 MFTRepSchemeTest >> testRepSchemeProgressionFor [ 85 86 | scheme | 87 scheme := MFTRepScheme from: 6 to: 10. 88 self 89 assert: (scheme progressionFor: 11) equals: #increaseLoad; 90 assert: (scheme progressionFor: 5) equals: #decreaseLoad; 91 assert: (scheme progressionFor: 6) equals: #keepLoad; 92 assert: (scheme progressionFor: 10) equals: #keepLoad 93 ] 94 95 { #category : 'tests' } 96 MFTRepSchemeTest >> testSetLogIsLoggedAndVolume [ 97 98 | log | 99 log := MFTSetLog reps: 8 load: 100. 100 101 self assert: log isLogged. 102 self assert: log volume equals: 800. 103 104 log reps: nil. 105 self deny: log isLogged 106 ] 107 108 { #category : 'tests' } 109 MFTRepSchemeTest >> testSetPrescriptionEqualityAndHash [ 110 111 | exercise scheme a b c | 112 exercise := MFTExercise dumbbellFly. 113 scheme := MFTRepScheme from: 6 to: 10. 114 115 a := MFTSetPrescription exercise: exercise repScheme: scheme. 116 b := MFTSetPrescription exercise: exercise repScheme: scheme. 117 c := MFTSetPrescription exercise: MFTExercise barbellSquat repScheme: scheme. 118 119 self assert: a equals: b. 120 self assert: a hash equals: b hash. 121 122 self deny: a equals: c 123 ] 124