I have been checking the exp formula with my buff. I have found that even with the 200% buff, my exp is twice of what it "should" be. 
Like, I put in all my stats for the battle. It comes up with exactly half according to the exp formula * my 200% buff. Then I times my exp by two and I get what I truly get in my battle.  
Ender you being helpful and giving out 2x exp? 
 
                 
                
             
         | 
    
    
        
        
            
                
Beware that these formulas are kinda screwy. They are sometimes off by a factor of 2, 4, etc.
  
-Experience - Against Training Bots, Botsunauthorized  
 
                 
                
             
         | 
    
    
        
        
            
                
It's always times 2 though. 
 
                 
                
             
         | 
    
    
        
        
            
                
So you're saying you're getting 400%? 
 
                 
                
             
         | 
    
    
        
        
            
                
can i have the xp-formula .. i want to test too 
 
                 
                
             
         | 
    
    
        
        
            
                
I guess I am getting 400%. 
Let me check with out the buff. 
 
                 
                
             
         | 
    
    
        
        
            
                
Without Buff 200%
Exp Formula   x2      Actual
222889      445779  401201
316983      633967  570570
236583      473165  425849
With Buff 200%
Exp Formula   x2     xBuff  Actual
219938      439875  879751  791776
270972      541944  1083888 975500
245856      491712  983423  885082
 
Everything seems to be 11% higher after the x2 
 
                 
                
             
         | 
    
    
        
        
            
                
Perhaps this: 
<[trainbot level] * [damage] * [INT]/[level&win-loss related variable]/ 2 * [trainbot level variable] * [block related variable]> * <[buff modifier]> 
is incorrect. 
Maybe the buff modifier only modifies part of that, and not the entirety of that function. 
 
                 
                
             
         | 
    
    
        
        
            
                
I tried messing with it again and can't seem to figure out the whole half as much exp thing. I don't think Ender put in the /2 after the win/loss variable. 
 
                 
                
             
         | 
    
    
        
        
            
                
Whoops. Thought I had 72 int this whole time and only had 63. That makes up for the 11% difference.  
Still the problem of x2 though. 
 
                 
                
             
         | 
    
    
        
        
            
                
All I know is that my average EXP with 200% EXP buff is much lower than double my average unbuffed EXP. If anything, it's closer to only 150% of my unbuffed XP. 
 
                 
                
             
         | 
    
    
        
        
            
                
Could you run some tests? 
 
                 
                
             
         | 
    
    
        
        | 
            
         | 
    
    
        
        
            
                
Here's the exp code if you want to take a look: 
public static function getExperienceTrain($isWin, $trainerLevel, $level, $damage, $intel, $blocks, $attempts) {
    switch (true) {
        case $trainerLevel < 300:
            $expMod = 1.0;
            break;
        case $trainerLevel < 450:
            $expMod = 1.3;
            break;
        case $trainerLevel < 600:
            $expMod = 1.6;
            break;
        case $trainerLevel < 750:
            $expMod = 1.9;
            break;
        case $trainerLevel < 900:
            $expMod = 2.2;
            break;
        case $trainerLevel >= 900:
            $expMod = 2.5;
            break;
    }
    $blockMod = 1 + $blocks / ($attempts - $blocks);
    switch (true) {
        case !$isWin && $trainerLevel < $level:
            $variable = 300;
            break;
        case !$isWin && $trainerLevel >= $level:
            $variable = 200;
            break;
        case $isWin && $trainerLevel < $level:
            $variable = 150;
            break;
        case $isWin && $trainerLevel >= $level:
            $variable = 100;
            break;
    }
    return round($trainerLevel * $damage * $intel / $variable / 1 * $expMod * $blockMod);
}
Buff exp is applied to the result of this. 
 
                 
                
             
         | 
    
    
        
        
            
                
return round($trainerLevel * $damage * $intel / $variable / 1 * $expMod * $blockMod); 
should be 
return round($trainerLevel * $damage * $intel / $variable / 2 * $expMod * $blockMod); 
sorry everyone, but why would you divide by 1? 
 
                 
                
             
         | 
    
    
        
        
            
                
That likely explains the comment on BU about the formula being off by a factor of 2. What's in the game now is correct because early on I'd verified using builds with known exp/hour values with the help of Ms. Rose. 
 
                 
                
             
         | 
    
    
        
        
            
                
Then why divide by one? :P 
 
                 
                
             
         | 
    
    
        
        
            
                
Probably as a reminder to myself that leaving off the divide by 2 was an intentional choice and not an omission. 
 
                 
                
             
         | 
    
    
        
        | 
            
         |