diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index b1077fb..e1eea1d 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 80495a4..8def855 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,7 +10,7 @@ plugins { id("java") id("maven-publish") id("org.jetbrains.dokka") version "1.7.10" - id("org.jetbrains.kotlinx.kover") version "0.6.0" + id("org.jetbrains.kotlinx.kover") version "0.6.1" id("org.sonarqube") version "3.4.0.2513" id("signing") kotlin("jvm") version "1.7.20" diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 1872b3e..24cc530 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -2,6 +2,7 @@ + LongMethod:ReadingTimeTest.kt$ReadingTimeTest$@Test fun testReadingTimeInSec() LongParameterList:ReadingTime.kt$ReadingTime$( text: String, wpm: Int = 275, var postfix: String = "min read", var plural: String = "min read", excludeImages: Boolean = false, extra: Int = 0, var roundingMode: RoundingMode = RoundingMode.HALF_EVEN ) MagicNumber:ReadingTime.kt$ReadingTime$10 MagicNumber:ReadingTime.kt$ReadingTime$12 diff --git a/src/test/kotlin/net/thauvin/erik/readingtime/ReadingTimeTest.kt b/src/test/kotlin/net/thauvin/erik/readingtime/ReadingTimeTest.kt index 1de3ccf..ca92941 100644 --- a/src/test/kotlin/net/thauvin/erik/readingtime/ReadingTimeTest.kt +++ b/src/test/kotlin/net/thauvin/erik/readingtime/ReadingTimeTest.kt @@ -63,113 +63,139 @@ class ReadingTimeTest { @Test fun testWordCount() { - assertEquals(0, ReadingTime.wordCount(" "), "empty") - assertEquals(3, ReadingTime.wordCount("one two three"), "one two three") - assertEquals(2, ReadingTime.wordCount(" one two "), "one two") - assertEquals(7, ReadingTime.wordCount(rt.text), "text") - assertEquals(505, ReadingTime.wordCount(blogPost), "blogPost") - assertEquals(391, ReadingTime.wordCount(mediumPost), "mediumPost") - assertEquals(275, ReadingTime.wordCount(twoSeventyFive), "275") - assertEquals(275, ReadingTime.wordCount("$twoSeventyFive $img"), "275 + image") + assertEquals(0, ReadingTime.wordCount(" "), "wordCount(empty)") + assertEquals(3, ReadingTime.wordCount("one two three"), "wordCount(one two three)") + assertEquals(2, ReadingTime.wordCount(" one two "), "wordCount(one two)") + assertEquals(7, ReadingTime.wordCount(rt.text), "wordCount(text)") + assertEquals(505, ReadingTime.wordCount(blogPost), "wordCount(blogPost)") + assertEquals(391, ReadingTime.wordCount(mediumPost), "wordCount(mediumPost)") + assertEquals(275, ReadingTime.wordCount(twoSeventyFive), "wordCount(275)") + assertEquals(275, ReadingTime.wordCount("$twoSeventyFive $img"), "wordCount(275 + image)") } @Test fun testImgCount() { - assertEquals(1, ReadingTime.imgCount(rt.text), "text") - assertEquals(11, ReadingTime.imgCount(blogPost), "blogPost") - assertEquals(3, ReadingTime.imgCount(mediumPost), "mediumPost") - assertEquals(1, ReadingTime.imgCount("$twoSeventyFive $img"), "275 + image") - assertEquals(2, ReadingTime.imgCount("$twoSeventyFive $img $img"), "275 + 2 images") + assertEquals(1, ReadingTime.imgCount(rt.text), "imgCount(text)") + assertEquals(11, ReadingTime.imgCount(blogPost), "imgCount(blogPost)") + assertEquals(3, ReadingTime.imgCount(mediumPost), "imgCount(mediumPost)") + assertEquals(1, ReadingTime.imgCount("$twoSeventyFive $img"), "imgCount(275 + image)") + assertEquals(2, ReadingTime.imgCount("$twoSeventyFive $img $img"), "imgCount(275 + 2 images)") } @Test fun testReadingTimeInSec() { - assertEquals(calcReadingTime(rt.text, rt.wpm) + calcImgTime(1), rt.calcReadingTimeInSec(), "text + image") + assertEquals( + calcReadingTime(rt.text, rt.wpm) + calcImgTime(1), + rt.calcReadingTimeInSec(), + "calcReadingTimeInSec(text + image)" + ) rt.text = "$img ${img.uppercase()}" - assertEquals(calcImgTime(2), rt.calcReadingTimeInSec(), "2 images") + assertEquals(calcImgTime(2), rt.calcReadingTimeInSec(), "calcReadingTimeInSec(2 images)") rt.excludeImages = true - assertEquals(0.0, rt.calcReadingTimeInSec(), "image uppercase") + assertEquals(0.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(image uppercase)") rt.excludeImages = false rt.text = blogPost assertEquals( - calcReadingTime(rt.text, rt.wpm) + calcImgTime(11), rt.calcReadingTimeInSec(), "blogPost" + calcReadingTime(rt.text, rt.wpm) + calcImgTime(11), + rt.calcReadingTimeInSec(), + "calcReadingTimeInSec(blogPost)" ) rt.excludeImages = true - assertEquals(calcReadingTime(rt.text, rt.wpm), rt.calcReadingTimeInSec(), "exclude images") + assertEquals( + calcReadingTime(rt.text, rt.wpm), + rt.calcReadingTimeInSec(), + "calcReadingTimeInSec(exclude images)" + ) rt.extra = 60 - assertEquals(calcReadingTime(rt.text, rt.wpm) + 60L, rt.calcReadingTimeInSec(), "extra 60") + assertEquals( + calcReadingTime(rt.text, rt.wpm) + 60L, + rt.calcReadingTimeInSec(), + "calcReadingTimeInSec(extra 60)" + ) rt.extra = 0 rt.excludeImages = false rt.text = mediumPost rt.wpm = 300 - assertEquals(calcReadingTime(rt.text, 300) + calcImgTime(3), rt.calcReadingTimeInSec(), "mediumPost 300 wpm") + assertEquals( + calcReadingTime(rt.text, 300) + calcImgTime(3), + rt.calcReadingTimeInSec(), + "calcReadingTimeInSec(mediumPost 300 wpm)" + ) rt.wpm = 275 rt.text = "This is a test" - assertEquals(0.0, rt.calcReadingTimeInSec(), "test") + assertEquals(0.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(test)") rt.text = twoSeventyFive - assertEquals(60.0, rt.calcReadingTimeInSec(), "275") + assertEquals(60.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275)") rt.text = "$twoSeventyFive $img" - assertEquals(72.0, rt.calcReadingTimeInSec(), "275 + image") + assertEquals(72.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275 + image)") rt.text = "$twoSeventyFive $img $img" - assertEquals(83.0, rt.calcReadingTimeInSec(), "275 + 2 images") + assertEquals(83.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275 + 2 images)") rt.text = "$twoSeventyFive ${img.repeat(10)}" - assertEquals(60.0 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3, rt.calcReadingTimeInSec(), "10 images") + assertEquals( + 60.0 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3, + rt.calcReadingTimeInSec(), + "calcReadingTimeInSec(10 images)" + ) rt.text = "$twoSeventyFive ${img.repeat(10)} $img" - assertEquals(135.0 + 3, rt.calcReadingTimeInSec(), "11 images") + assertEquals(135.0 + 3, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(11 images)") rt.text = "$twoSeventyFive $twoSeventyFive" - assertEquals(120.0, rt.calcReadingTimeInSec(), "275*2") + assertEquals(120.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275*2)") rt.text = "" - assertEquals(0.0, rt.calcReadingTimeInSec(), "empty") + assertEquals(0.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(text=empty)") rt.postfix = "" - assertEquals(rt.calcReadingTime(), rt.calcReadingTimeInSec().toInt().toString(), "toInt(0)") + assertEquals( + rt.calcReadingTime(), + rt.calcReadingTimeInSec().toInt().toString(), + "calcReadingTimeInSec(postfix=empty)" + ) } @Test fun testReadingTime() { rt.text = blogPost - assertEquals("2 min read", rt.calcReadingTime(), "blogPost") + assertEquals("2 min read", rt.calcReadingTime(), "calcReadingTime(blogPost)") rt.plural = "mins read" - assertEquals("2 mins read", rt.calcReadingTime(), "plural") + assertEquals("2 mins read", rt.calcReadingTime(), "calcReadingTime(plural)") rt.text = mediumPost rt.plural = "" - assertEquals("2", rt.calcReadingTime(), "mediumPost") + assertEquals("2", rt.calcReadingTime(), "calcReadingTime(mediumPost)") rt.text = "This is a test." rt.postfix = "" - assertEquals("0", rt.calcReadingTime(), "test") + assertEquals("0", rt.calcReadingTime(), "calcReadingTime(test)") rt.text = "" - assertEquals("0", rt.calcReadingTime(), "empty") + assertEquals("0", rt.calcReadingTime(), "calcReadingTime(empty)") rt.text = twoSeventyFive - assertEquals("1", rt.calcReadingTime(), "275") + assertEquals("1", rt.calcReadingTime(), "calcReadingTime(275)") rt.text = "$twoSeventyFive $twoSeventyFive" - assertEquals("2", rt.calcReadingTime(), "275 * 2") + assertEquals("2", rt.calcReadingTime(), "calcReadingTime(275 * 2)") } @Test fun testRoundingMode() { rt.text = blogPost rt.roundingMode = RoundingMode.UP - assertEquals("3 min read", rt.calcReadingTime(), "UP") + assertEquals("3 min read", rt.calcReadingTime(), "RoundingMode.UP") rt.text = mediumPost rt.roundingMode = RoundingMode.DOWN - assertEquals("1 min read", rt.calcReadingTime(), "DOWN") + assertEquals("1 min read", rt.calcReadingTime(), "RoundingMode.DOWN") } }