anchor.diff:  
     for I := 1 to 60*60*10 do
     begin
  -    fGame.UpdateState(nil);
  +    fGame.UpdateGame(nil);
       if fGame.GameState = gsOnHold then
         fGame.GameHold(False, gr_Win);
     end;
  
positive.code: 
      for I := 1 to 1000 do
      begin
        fGame.UpdateState(nil);
        if fGame.GameState = gsOnHold then
          fGame.GameHold(False, gr_Win);
      end;
  
negative.code: end;
  
  procedure TestTKMGame.TestStone;
  var I: Integer; T: Cardinal;
  begin
    fGame.StartSingleMap(ExtractFilePath(ParamStr(0)) + 'StoneTest.dat', 'Stone Test');
    Check(fPlayers[0].Stats.GetGoodsProduced = 0);
  
    T := GetTickCount;
  
    for I := 1 to 2*60*60*10 do
    begin
      fGame.UpdateGame(nil);
      if fGame.GameState = gsOnHold then
        fGame.GameHold(False, gr_Win);
    end;
    Status('Done in ' + IntToStr(GetTickCount - T) + ' ms');
  
    fGame.Save('StoneTest');
    Check(fPlayers[0].Stats.GetGoodsProduced >= 3800, 'StoneMining got broken? Mined '+IntToStr(fPlayers[0].Stats.GetGoodsProduced)+'/3800');
  