Here are my tests. See beginning of post for Electro Ball data. By target, I mean "target of Electro Ball", not some kind of goal.
1. Increases / decreases (+6 to -6)
Electro Ball mon Speed: 113
Target Speed: 151
Target modifiers: -6
Electro Ball BP: 120
Implied Speed stat: 37
Implication of test: Boosts / drops are floored.
2. Pledge Swamp
Electro Ball mon Speed: 113
Target Speed: 151 and 150
Target modifiers: Pledge Swamp
Electro Ball BP: 80 for 151 Speed and 120 for 150 Speed
Implied Speed stat: 38 for 151 Speed and 37 for 150 Speed
Implication of test: Pledge Swamp is pokeRounded.
All other Speed modifiers need to be tested alongside other modifiers to be meaningful, as floor(0.5) and pokeRound(0.5) are equivalent.
3. Increases / decreases with Choice Scarf
Electro Ball mon Speed: 113
Target Speed: 38
Target modifiers: -1, Choice Scarf
Electro Ball BP: 120
Implied Speed stat: 37
Implication of test: Increases / decreases are calculated before Choice Scarf with certainty. Could be:
Floor(Floor(x*2/3)*1.5) OR pokeRound(Floor(x*2/3)*1.5)
4. Increases / decreases with Tailwind
Electro Ball mon Speed: 152
Target Speed: 17
Target modifiers: +1, Tailwind
Electro Ball BP: 120
Implied Speed stat: 50
Implication of test: Increases / decreases must be calculated before Tailwind with certainty. Could be:
Floor(Floor(x*1.5)*2) OR pokeRound(Floor(x*1.5)*2)
5. Choice Scarf with Tailwind
Electro Ball mon Speed: 152
Target Speed: 17
Target modifiers: Choice Scarf, Tailwind
Electro Ball BP: 80
Implied Speed stat: 51
Implication of test: Choice Scarf must not be calculated before Tailwind with certainty. It could be at the same time, or Scarf could be calculated afterwards. Could be:
Floor(Floor(x*2)*1.5) OR Floor(pokeRound(x*2)*1.5) OR pokeRound(Floor(x*2)*1.5) OR pokeRound(pokeRound(x*2)*1.5) OR Floor(x*2*1.5) OR pokeRound(x*2*1.5)
6. Paralysis with Tailwind (
note: this is wrong, see second edit)
Electro Ball mon Speed: 152
Target Speed: 51
Target modifiers: Paralysis, Tailwind
Electro Ball BP: 120
Implied Speed stat: 50
Implication of test: Paralysis is calculated before Tailwind with certainty. Could be:
Floor(Floor(x*0.5)*2) OR Floor(pokeRound(x*0.5)*2) OR pokeRound(Floor(x*0.5)*2) OR pokeRound(pokeRound(x*0.5)*2)
7. Choice Scarf with Quick Feet
Electro Ball mon Speed: 261
Target Speed: 39
Target modifiers: Choice Scarf, Quick Feet
Electro Ball BP: 80
Implied Speed stat: 88
Implication of test: Choice Scarf and Quick Feet must be calculated in the same step, and the entire step must be pokeRounded. Must be:
pokeRound(x*1.5*1.5)
8. Increases / decreases with paralysis
Electro Ball mon Speed: 129
Target Speed: 59
Target modifiers: +1, paralysis
Electro Ball BP: 80
Implied Speed stat: 44
Implication of test: Paralysis must not be calculated before increases / decreases. Could be:
Floor(x*0.5*boost or drop) OR Floor(Floor(x*boost or drop)*0.5) OR pokeRound(Floor(x*boost or drop)*0.5)
As an aside,
Stats proved that these first two formulas are equivalent (the third is also technically equivalent mathematically).
9. Scarf + Quick Feet + Tailwind (NOTE: I was compared 60 to 80 BP for Electro Ball on this one)
Electro Ball mon Speed: 350
Target Speed: 39
Target modifiers: Choice Scarf, Quick Feet, Tailwind
Electro Ball BP: 80
Implied Speed stat: 175
Implication of test: Tailwind must not be calculated in a different step after Choice Scarf and Quick Feet. Tailwind could be calculated before or at the same time as Choice Scarf / Quick Feet. Could be:
pokeRound(x*2*1.5*1.5) OR pokeRound((x*2)*1.5*1.5)
10. Scarf + Chlorophyll / Swift Swim / Sand Rush / Slush Rush / Surge Surfer
Electro Ball mon Speed: 348
Target Speed: 39
Target modifiers: appropriate 2x multiplier + Choice Scarf
Electro Ball BP: 80 for all (tested all)
Implied Speed stat: 117
Implication of test: These 2x multipliers must not be calculated in a different step after Choice Scarf. 2x multiplies could be calculated before or at the same time as Choice Scarf. Could be:
pokeRound(x*2*1.5) OR pokeRound((x*2)*1.5)
11. Pledge Swamp + Unburden / Quick Powder
Electro Ball mon Speed: 150
Target Speed: 102
Target modifiers: Pledge Swamp and Unburden / Pledge Swamp and Quick Powder
Electro Ball BP: 80 for both (tested both)
Implied Speed stat: 51
Implication of test: Unburden / Quick Powder must not be calculated in a different step after Pledge Swamp. Unburden / Quick Powder could be calculated before or at the same time as Pledge Swamp. Could be:
pokeRound(x*2*0.25) OR pokeRound((x*2)*0.25)
12. Choice Scarf and Slow Start
Electro Ball mon Speed: 117
Target Speed: 53
Target modifiers: Choice Scarf, Slow Start
Electro Ball BP: 80
Implied Speed stat: 40
Implication of test: Choice Scarf and Slow Start must be calculated in the same step. Must be:
pokeRound(x*1.5*0.5)
13. Quick Feet and Iron Ball / Power items
Electro Ball mon Speed: 117
Target Speed: 53
Target modifiers: Quick Feet / Iron Ball and Quick Feet / Power Anklet
Electro Ball BP: 80 for both (tested both)
Implied Speed stat: 40
Implication of test: Quick Feet, Iron Ball, and Power items must be calculated in the same step. Must be:
pokeRound(x*1.5*0.5)