diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/performance/PerformanceTest.java b/uhabits-android/src/androidTest/java/org/isoron/uhabits/performance/PerformanceTest.java deleted file mode 100644 index 7c7402a8e..000000000 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/performance/PerformanceTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.performance; - -import androidx.test.ext.junit.runners.*; -import androidx.test.filters.*; - -import org.isoron.uhabits.*; -import org.isoron.uhabits.core.commands.*; -import org.isoron.uhabits.core.database.*; -import org.isoron.uhabits.core.models.*; -import org.isoron.uhabits.core.models.sqlite.*; -import org.junit.*; -import org.junit.runner.*; - -import static org.isoron.uhabits.core.models.Timestamp.*; - -@RunWith(AndroidJUnit4.class) -@MediumTest -public class PerformanceTest extends BaseAndroidTest -{ - private Habit habit; - - @Override - public void setUp() - { - super.setUp(); - habit = fixtures.createLongHabit(); - } - - @Ignore - @Test(timeout = 5000) - public void benchmarkCreateHabitCommand() - { - Database db = ((SQLModelFactory) modelFactory).getDatabase(); - db.beginTransaction(); - for (int i = 0; i < 1_000; i++) - { - Habit model = modelFactory.buildHabit(); - new CreateHabitCommand(modelFactory, habitList, model).run(); - } - db.setTransactionSuccessful(); - db.endTransaction(); - } - - @Ignore - @Test(timeout = 5000) - public void benchmarkCreateRepetitionCommand() - { - Database db = ((SQLModelFactory) modelFactory).getDatabase(); - db.beginTransaction(); - Habit habit = fixtures.createEmptyHabit(); - for (int i = 0; i < 5_000; i++) - { - Timestamp timestamp = new Timestamp(i * DAY_LENGTH); - new CreateRepetitionCommand(habitList, habit, timestamp, 1).run(); - } - db.setTransactionSuccessful(); - db.endTransaction(); - } -} diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/performance/PerformanceTest.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/performance/PerformanceTest.kt new file mode 100644 index 000000000..10ad56057 --- /dev/null +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/performance/PerformanceTest.kt @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2016-2021 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ +package org.isoron.uhabits.performance + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.MediumTest +import org.isoron.uhabits.BaseAndroidTest +import org.isoron.uhabits.core.commands.CreateHabitCommand +import org.isoron.uhabits.core.commands.CreateRepetitionCommand +import org.isoron.uhabits.core.models.Habit +import org.isoron.uhabits.core.models.Timestamp +import org.isoron.uhabits.core.models.Timestamp.Companion.DAY_LENGTH +import org.isoron.uhabits.core.models.sqlite.SQLModelFactory +import org.junit.Ignore +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +@MediumTest +class PerformanceTest : BaseAndroidTest() { + private var habit: Habit? = null + override fun setUp() { + super.setUp() + habit = fixtures.createLongHabit() + } + + @Ignore + @Test(timeout = 5000) + fun benchmarkCreateHabitCommand() { + val db = (modelFactory as SQLModelFactory).database + db.beginTransaction() + for (i in 0..999) { + val model = modelFactory.buildHabit() + CreateHabitCommand(modelFactory, habitList, model).run() + } + db.setTransactionSuccessful() + db.endTransaction() + } + + @Ignore + @Test(timeout = 5000) + fun benchmarkCreateRepetitionCommand() { + val db = (modelFactory as SQLModelFactory).database + db.beginTransaction() + val habit = fixtures.createEmptyHabit() + for (i in 0..4999) { + val timestamp: Timestamp = Timestamp(i * DAY_LENGTH) + CreateRepetitionCommand(habitList, habit, timestamp, 1).run() + } + db.setTransactionSuccessful() + db.endTransaction() + } +}