// Path: app/src/main/java/co/jasonwyatt/sqliteperf/App.java
// public class App extends Application {
//     private static App sInstance;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         sInstance = this;
//     }
// 
//     public static App getInstance() {
//         return sInstance;
//     }
// }
// 
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/TestCase.java
// public interface TestCase {
//     void resetCase();
//     Metrics runCase();
// 
//     class Metrics {
//         private final String mName;
//         private final float mVariable;
//         private int mIterations = 1;
//         private long mStartTime;
//         private long mEndTime;
//         private long mElapsedTime;
// 
//         public Metrics(String name, float variable) {
//             mName = name;
//             mVariable = variable;
//         }
// 
//         Metrics(List<Metrics> iterations) {
//             mName = iterations.get(0).mName;
//             mVariable = iterations.get(0).mVariable;
//             mIterations = iterations.size();
//             mElapsedTime = 0;
//             for (Metrics m : iterations) {
//                 mElapsedTime += m.mElapsedTime;
//             }
//             mElapsedTime = (long) (mElapsedTime*1.0f / iterations.size());
//         }
// 
//         public void started() {
//             mStartTime = System.nanoTime();
//         }
// 
//         public void finished() {
//             mEndTime = System.nanoTime();
//             mElapsedTime = mEndTime - mStartTime;
//         }
// 
//         @Override
//         public String toString() {
//             StringBuilder sb = new StringBuilder();
//             sb.append(mName);
//             sb.append(":\n");
//             if (mIterations > 1) {
//                 sb.append(mIterations);
//                 sb.append(" iterations, each averaged ");
//             } else {
//                 sb.append("took ");
//             }
//             sb.append(((float) mElapsedTime / mIterations) / 1000000f);
//             sb.append(" seconds");
//             return sb.toString();
//         }
// 
//         public float getVariable() {
//             return mVariable;
//         }
// 
//         public long getElapsedTime() {
//             return mElapsedTime;
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/inserts/DbHelper.java
// public class DbHelper extends SQLiteOpenHelper {
//     public DbHelper(Context context, String name) {
//         super(context, name, null, 1);
//     }
// 
//     @Override
//     public void onCreate(SQLiteDatabase db) {
//         db.execSQL("CREATE TABLE inserts_1 (val INTEGER)");
//         db.execSQL("CREATE TABLE tracks (id INTEGER PRIMARY KEY, title TEXT, band_id INTEGER, duration FLOAT, url TEXT, lyrics TEXT, about TEXT, release_date INTEGER, mod_date INTEGER)");
//     }
// 
//     @Override
//     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
// }


import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import co.jasonwyatt.sqliteperf.App;
import co.jasonwyatt.sqliteperf.TestCase;
import co.jasonwyatt.sqliteperf.inserts.DbHelper;
package co.jasonwyatt.sqliteperf.inserts.integers;




/**
 * @author jason
 */

public class IntegerSQLiteStatementBatchTransactionCase implements TestCase {
    private DbHelper mDbHelper;
    private final Random mRandom;
    private final int mInsertions;
    private final int mTestSizeIndex;

    public IntegerSQLiteStatementBatchTransactionCase(int insertions, int testSizeIndex) {
        mRandom = new Random(System.currentTimeMillis());
        mInsertions = insertions;
        mTestSizeIndex = testSizeIndex;
    }

    @Override
    public void resetCase() {
        mDbHelper.getWritableDatabase().execSQL("delete from inserts_1");
        mDbHelper.close();
    }

    @Override
    public Metrics runCase() {
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/App.java
// public class App extends Application {
//     private static App sInstance;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         sInstance = this;
//     }
// 
//     public static App getInstance() {
//         return sInstance;
//     }
// }
// 
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/TestCase.java
// public interface TestCase {
//     void resetCase();
//     Metrics runCase();
// 
//     class Metrics {
//         private final String mName;
//         private final float mVariable;
//         private int mIterations = 1;
//         private long mStartTime;
//         private long mEndTime;
//         private long mElapsedTime;
// 
//         public Metrics(String name, float variable) {
//             mName = name;
//             mVariable = variable;
//         }
// 
//         Metrics(List<Metrics> iterations) {
//             mName = iterations.get(0).mName;
//             mVariable = iterations.get(0).mVariable;
//             mIterations = iterations.size();
//             mElapsedTime = 0;
//             for (Metrics m : iterations) {
//                 mElapsedTime += m.mElapsedTime;
//             }
//             mElapsedTime = (long) (mElapsedTime*1.0f / iterations.size());
//         }
// 
//         public void started() {
//             mStartTime = System.nanoTime();
//         }
// 
//         public void finished() {
//             mEndTime = System.nanoTime();
//             mElapsedTime = mEndTime - mStartTime;
//         }
// 
//         @Override
//         public String toString() {
//             StringBuilder sb = new StringBuilder();
//             sb.append(mName);
//             sb.append(":\n");
//             if (mIterations > 1) {
//                 sb.append(mIterations);
//                 sb.append(" iterations, each averaged ");
//             } else {
//                 sb.append("took ");
//             }
//             sb.append(((float) mElapsedTime / mIterations) / 1000000f);
//             sb.append(" seconds");
//             return sb.toString();
//         }
// 
//         public float getVariable() {
//             return mVariable;
//         }
// 
//         public long getElapsedTime() {
//             return mElapsedTime;
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/inserts/DbHelper.java
// public class DbHelper extends SQLiteOpenHelper {
//     public DbHelper(Context context, String name) {
//         super(context, name, null, 1);
//     }
// 
//     @Override
//     public void onCreate(SQLiteDatabase db) {
//         db.execSQL("CREATE TABLE inserts_1 (val INTEGER)");
//         db.execSQL("CREATE TABLE tracks (id INTEGER PRIMARY KEY, title TEXT, band_id INTEGER, duration FLOAT, url TEXT, lyrics TEXT, about TEXT, release_date INTEGER, mod_date INTEGER)");
//     }
// 
//     @Override
//     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
// }


// Path: app/src/main/java/co/jasonwyatt/sqliteperf/inserts/integers/IntegerSQLiteStatementBatchTransactionCase.java
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import co.jasonwyatt.sqliteperf.App;
import co.jasonwyatt.sqliteperf.TestCase;
import co.jasonwyatt.sqliteperf.inserts.DbHelper;

package co.jasonwyatt.sqliteperf.inserts.integers;




/**
 * @author jason
 */

public class IntegerSQLiteStatementBatchTransactionCase implements TestCase {
    private DbHelper mDbHelper;
    private final Random mRandom;
    private final int mInsertions;
    private final int mTestSizeIndex;

    public IntegerSQLiteStatementBatchTransactionCase(int insertions, int testSizeIndex) {
        mRandom = new Random(System.currentTimeMillis());
        mInsertions = insertions;
        mTestSizeIndex = testSizeIndex;
    }

    @Override
    public void resetCase() {
        mDbHelper.getWritableDatabase().execSQL("delete from inserts_1");
        mDbHelper.close();
    }

    @Override
    public Metrics runCase() {
        mDbHelper = new DbHelper(App.getInstance(), IntegerSQLiteStatementBatchTransactionCase.class.getSimpleName());