// 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/room/Db.java
// @Database(entities = {TrackInfo.class, IntegerInfo.class}, version = 1)
// public abstract class Db extends RoomDatabase {
//     public abstract IntegersDao integers();
//     public abstract TracksDao tracks();
// }
// 
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/inserts/room/TrackInfo.java
// @Entity(tableName = "tracks")
// public class TrackInfo {
//     @PrimaryKey
//     @ColumnInfo(name = "id")
//     private long mId;
//     @ColumnInfo(name = "title")
//     private String mTitle;
//     @ColumnInfo(name = "band_id")
//     private long mBandId;
//     @ColumnInfo(name = "duration")
//     private double mDuration;
//     @ColumnInfo(name = "url")
//     private String mUrl;
//     @ColumnInfo(name = "lyrics")
//     private String mLyrics;
//     @ColumnInfo(name = "about")
//     private String mAbout;
//     @ColumnInfo(name = "release_date")
//     private long mReleaseDate;
//     @ColumnInfo(name = "mod_Date")
//     private long mModDate;
// 
//     public long getId() {
//         return mId;
//     }
// 
//     public void setId(long id) {
//         mId = id;
//     }
// 
//     public String getTitle() {
//         return mTitle;
//     }
// 
//     public void setTitle(String title) {
//         mTitle = title;
//     }
// 
//     public long getBandId() {
//         return mBandId;
//     }
// 
//     public void setBandId(long bandId) {
//         mBandId = bandId;
//     }
// 
//     public double getDuration() {
//         return mDuration;
//     }
// 
//     public void setDuration(double duration) {
//         mDuration = duration;
//     }
// 
//     public String getUrl() {
//         return mUrl;
//     }
// 
//     public void setUrl(String url) {
//         mUrl = url;
//     }
// 
//     public String getLyrics() {
//         return mLyrics;
//     }
// 
//     public void setLyrics(String lyrics) {
//         mLyrics = lyrics;
//     }
// 
//     public String getAbout() {
//         return mAbout;
//     }
// 
//     public void setAbout(String about) {
//         mAbout = about;
//     }
// 
//     public long getReleaseDate() {
//         return mReleaseDate;
//     }
// 
//     public void setReleaseDate(long releaseDate) {
//         mReleaseDate = releaseDate;
//     }
// 
//     public long getModDate() {
//         return mModDate;
//     }
// 
//     public void setModDate(long modDate) {
//         mModDate = modDate;
//     }
// }


import android.arch.persistence.room.Room;
import java.nio.charset.Charset;
import java.util.Random;
import co.jasonwyatt.sqliteperf.App;
import co.jasonwyatt.sqliteperf.TestCase;
import co.jasonwyatt.sqliteperf.inserts.room.Db;
import co.jasonwyatt.sqliteperf.inserts.room.TrackInfo;
package co.jasonwyatt.sqliteperf.inserts.tracks;




/**
 * @author jason
 */

public class TracksRoomTestCase implements TestCase {
    private final Db mDb;
    private final Random mRandom;
    private final int mInsertions;
    private final int mTestSizeIndex;

    public TracksRoomTestCase(int insertions, int testSizeIndex) {
// 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/room/Db.java
// @Database(entities = {TrackInfo.class, IntegerInfo.class}, version = 1)
// public abstract class Db extends RoomDatabase {
//     public abstract IntegersDao integers();
//     public abstract TracksDao tracks();
// }
// 
// Path: app/src/main/java/co/jasonwyatt/sqliteperf/inserts/room/TrackInfo.java
// @Entity(tableName = "tracks")
// public class TrackInfo {
//     @PrimaryKey
//     @ColumnInfo(name = "id")
//     private long mId;
//     @ColumnInfo(name = "title")
//     private String mTitle;
//     @ColumnInfo(name = "band_id")
//     private long mBandId;
//     @ColumnInfo(name = "duration")
//     private double mDuration;
//     @ColumnInfo(name = "url")
//     private String mUrl;
//     @ColumnInfo(name = "lyrics")
//     private String mLyrics;
//     @ColumnInfo(name = "about")
//     private String mAbout;
//     @ColumnInfo(name = "release_date")
//     private long mReleaseDate;
//     @ColumnInfo(name = "mod_Date")
//     private long mModDate;
// 
//     public long getId() {
//         return mId;
//     }
// 
//     public void setId(long id) {
//         mId = id;
//     }
// 
//     public String getTitle() {
//         return mTitle;
//     }
// 
//     public void setTitle(String title) {
//         mTitle = title;
//     }
// 
//     public long getBandId() {
//         return mBandId;
//     }
// 
//     public void setBandId(long bandId) {
//         mBandId = bandId;
//     }
// 
//     public double getDuration() {
//         return mDuration;
//     }
// 
//     public void setDuration(double duration) {
//         mDuration = duration;
//     }
// 
//     public String getUrl() {
//         return mUrl;
//     }
// 
//     public void setUrl(String url) {
//         mUrl = url;
//     }
// 
//     public String getLyrics() {
//         return mLyrics;
//     }
// 
//     public void setLyrics(String lyrics) {
//         mLyrics = lyrics;
//     }
// 
//     public String getAbout() {
//         return mAbout;
//     }
// 
//     public void setAbout(String about) {
//         mAbout = about;
//     }
// 
//     public long getReleaseDate() {
//         return mReleaseDate;
//     }
// 
//     public void setReleaseDate(long releaseDate) {
//         mReleaseDate = releaseDate;
//     }
// 
//     public long getModDate() {
//         return mModDate;
//     }
// 
//     public void setModDate(long modDate) {
//         mModDate = modDate;
//     }
// }


// Path: app/src/main/java/co/jasonwyatt/sqliteperf/inserts/tracks/TracksRoomTestCase.java
import android.arch.persistence.room.Room;
import java.nio.charset.Charset;
import java.util.Random;
import co.jasonwyatt.sqliteperf.App;
import co.jasonwyatt.sqliteperf.TestCase;
import co.jasonwyatt.sqliteperf.inserts.room.Db;
import co.jasonwyatt.sqliteperf.inserts.room.TrackInfo;

package co.jasonwyatt.sqliteperf.inserts.tracks;




/**
 * @author jason
 */

public class TracksRoomTestCase implements TestCase {
    private final Db mDb;
    private final Random mRandom;
    private final int mInsertions;
    private final int mTestSizeIndex;

    public TracksRoomTestCase(int insertions, int testSizeIndex) {
        mDb = Room.databaseBuilder(App.getInstance(), Db.class, "room").build();