/** * */ package logbook.test; import java.io.FileInputStream; import java.io.IOException; import logbook.dto.BattleExDto; import logbook.dto.ResultRank; import com.dyuproject.protostuff.LinkedBuffer; import com.dyuproject.protostuff.ProtostuffIOUtil; import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.runtime.RuntimeSchema; /** * @author Nekopanda * */ public class BattleDataReadTest { /** * @param args */ public static void main(String[] args) { try { FileInputStream input = new FileInputStream("dump-data.dat"); int numData = 0; int mismatch = 0; long before = System.currentTimeMillis(); Schema<BattleExDto> schema = RuntimeSchema.getSchema(BattleExDto.class); LinkedBuffer buffer = LinkedBuffer.allocate(128 * 1024); while (input.available() > 0) { BattleExDto battle = schema.newMessage(); ProtostuffIOUtil.mergeDelimitedFrom(input, battle, schema, buffer); // ランクが合っているかチェック ResultRank estimatedRank = battle.getLastPhase().getEstimatedRank(); if (!battle.getRank().equals(estimatedRank.rank())) { System.out.println("戦闘結果判定ミス: 正解ランク:" + battle.getRank() + " " + battle.getLastPhase().getRankCalcInfo(battle)); ++mismatch; } ++numData; } long after = System.currentTimeMillis(); System.out.println("完了 " + mismatch + "/" + numData + "(" + (after - before) + " ms)"); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } }