Cleaned up tests

This commit is contained in:
Erik C. Thauvin 2022-10-04 12:46:45 -07:00
parent 96fbbd6634
commit 4821274d13
4 changed files with 67 additions and 40 deletions

2
.idea/kotlinc.xml generated
View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="KotlinJpsPluginSettings"> <component name="KotlinJpsPluginSettings">
<option name="version" value="1.7.10" /> <option name="version" value="1.7.20" />
</component> </component>
</project> </project>

View file

@ -10,7 +10,7 @@ plugins {
id("java") id("java")
id("maven-publish") id("maven-publish")
id("org.jetbrains.dokka") version "1.7.10" 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("org.sonarqube") version "3.4.0.2513"
id("signing") id("signing")
kotlin("jvm") version "1.7.20" kotlin("jvm") version "1.7.20"

View file

@ -2,6 +2,7 @@
<SmellBaseline> <SmellBaseline>
<ManuallySuppressedIssues/> <ManuallySuppressedIssues/>
<CurrentIssues> <CurrentIssues>
<ID>LongMethod:ReadingTimeTest.kt$ReadingTimeTest$@Test fun testReadingTimeInSec()</ID>
<ID>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 )</ID> <ID>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 )</ID>
<ID>MagicNumber:ReadingTime.kt$ReadingTime$10</ID> <ID>MagicNumber:ReadingTime.kt$ReadingTime$10</ID>
<ID>MagicNumber:ReadingTime.kt$ReadingTime$12</ID> <ID>MagicNumber:ReadingTime.kt$ReadingTime$12</ID>

View file

@ -63,113 +63,139 @@ class ReadingTimeTest {
@Test @Test
fun testWordCount() { fun testWordCount() {
assertEquals(0, ReadingTime.wordCount(" "), "empty") assertEquals(0, ReadingTime.wordCount(" "), "wordCount(empty)")
assertEquals(3, ReadingTime.wordCount("one two three"), "one two three") assertEquals(3, ReadingTime.wordCount("one two three"), "wordCount(one two three)")
assertEquals(2, ReadingTime.wordCount(" one two "), "one two") assertEquals(2, ReadingTime.wordCount(" one two "), "wordCount(one two)")
assertEquals(7, ReadingTime.wordCount(rt.text), "text") assertEquals(7, ReadingTime.wordCount(rt.text), "wordCount(text)")
assertEquals(505, ReadingTime.wordCount(blogPost), "blogPost") assertEquals(505, ReadingTime.wordCount(blogPost), "wordCount(blogPost)")
assertEquals(391, ReadingTime.wordCount(mediumPost), "mediumPost") assertEquals(391, ReadingTime.wordCount(mediumPost), "wordCount(mediumPost)")
assertEquals(275, ReadingTime.wordCount(twoSeventyFive), "275") assertEquals(275, ReadingTime.wordCount(twoSeventyFive), "wordCount(275)")
assertEquals(275, ReadingTime.wordCount("$twoSeventyFive $img"), "275 + image") assertEquals(275, ReadingTime.wordCount("$twoSeventyFive $img"), "wordCount(275 + image)")
} }
@Test @Test
fun testImgCount() { fun testImgCount() {
assertEquals(1, ReadingTime.imgCount(rt.text), "text") assertEquals(1, ReadingTime.imgCount(rt.text), "imgCount(text)")
assertEquals(11, ReadingTime.imgCount(blogPost), "blogPost") assertEquals(11, ReadingTime.imgCount(blogPost), "imgCount(blogPost)")
assertEquals(3, ReadingTime.imgCount(mediumPost), "mediumPost") assertEquals(3, ReadingTime.imgCount(mediumPost), "imgCount(mediumPost)")
assertEquals(1, ReadingTime.imgCount("$twoSeventyFive $img"), "275 + image") assertEquals(1, ReadingTime.imgCount("$twoSeventyFive $img"), "imgCount(275 + image)")
assertEquals(2, ReadingTime.imgCount("$twoSeventyFive $img $img"), "275 + 2 images") assertEquals(2, ReadingTime.imgCount("$twoSeventyFive $img $img"), "imgCount(275 + 2 images)")
} }
@Test @Test
fun testReadingTimeInSec() { 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()}" rt.text = "$img ${img.uppercase()}"
assertEquals(calcImgTime(2), rt.calcReadingTimeInSec(), "2 images") assertEquals(calcImgTime(2), rt.calcReadingTimeInSec(), "calcReadingTimeInSec(2 images)")
rt.excludeImages = true rt.excludeImages = true
assertEquals(0.0, rt.calcReadingTimeInSec(), "image uppercase") assertEquals(0.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(image uppercase)")
rt.excludeImages = false rt.excludeImages = false
rt.text = blogPost rt.text = blogPost
assertEquals( 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 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 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.extra = 0
rt.excludeImages = false rt.excludeImages = false
rt.text = mediumPost rt.text = mediumPost
rt.wpm = 300 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.wpm = 275
rt.text = "This is a test" rt.text = "This is a test"
assertEquals(0.0, rt.calcReadingTimeInSec(), "test") assertEquals(0.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(test)")
rt.text = twoSeventyFive rt.text = twoSeventyFive
assertEquals(60.0, rt.calcReadingTimeInSec(), "275") assertEquals(60.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275)")
rt.text = "$twoSeventyFive $img" rt.text = "$twoSeventyFive $img"
assertEquals(72.0, rt.calcReadingTimeInSec(), "275 + image") assertEquals(72.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275 + image)")
rt.text = "$twoSeventyFive $img $img" 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)}" 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" 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" rt.text = "$twoSeventyFive $twoSeventyFive"
assertEquals(120.0, rt.calcReadingTimeInSec(), "275*2") assertEquals(120.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(275*2)")
rt.text = "" rt.text = ""
assertEquals(0.0, rt.calcReadingTimeInSec(), "empty") assertEquals(0.0, rt.calcReadingTimeInSec(), "calcReadingTimeInSec(text=empty)")
rt.postfix = "" rt.postfix = ""
assertEquals(rt.calcReadingTime(), rt.calcReadingTimeInSec().toInt().toString(), "toInt(0)") assertEquals(
rt.calcReadingTime(),
rt.calcReadingTimeInSec().toInt().toString(),
"calcReadingTimeInSec(postfix=empty)"
)
} }
@Test @Test
fun testReadingTime() { fun testReadingTime() {
rt.text = blogPost rt.text = blogPost
assertEquals("2 min read", rt.calcReadingTime(), "blogPost") assertEquals("2 min read", rt.calcReadingTime(), "calcReadingTime(blogPost)")
rt.plural = "mins read" rt.plural = "mins read"
assertEquals("2 mins read", rt.calcReadingTime(), "plural") assertEquals("2 mins read", rt.calcReadingTime(), "calcReadingTime(plural)")
rt.text = mediumPost rt.text = mediumPost
rt.plural = "" rt.plural = ""
assertEquals("2", rt.calcReadingTime(), "mediumPost") assertEquals("2", rt.calcReadingTime(), "calcReadingTime(mediumPost)")
rt.text = "This is a test." rt.text = "This is a test."
rt.postfix = "" rt.postfix = ""
assertEquals("0", rt.calcReadingTime(), "test") assertEquals("0", rt.calcReadingTime(), "calcReadingTime(test)")
rt.text = "" rt.text = ""
assertEquals("0", rt.calcReadingTime(), "empty") assertEquals("0", rt.calcReadingTime(), "calcReadingTime(empty)")
rt.text = twoSeventyFive rt.text = twoSeventyFive
assertEquals("1", rt.calcReadingTime(), "275") assertEquals("1", rt.calcReadingTime(), "calcReadingTime(275)")
rt.text = "$twoSeventyFive $twoSeventyFive" rt.text = "$twoSeventyFive $twoSeventyFive"
assertEquals("2", rt.calcReadingTime(), "275 * 2") assertEquals("2", rt.calcReadingTime(), "calcReadingTime(275 * 2)")
} }
@Test @Test
fun testRoundingMode() { fun testRoundingMode() {
rt.text = blogPost rt.text = blogPost
rt.roundingMode = RoundingMode.UP rt.roundingMode = RoundingMode.UP
assertEquals("3 min read", rt.calcReadingTime(), "UP") assertEquals("3 min read", rt.calcReadingTime(), "RoundingMode.UP")
rt.text = mediumPost rt.text = mediumPost
rt.roundingMode = RoundingMode.DOWN rt.roundingMode = RoundingMode.DOWN
assertEquals("1 min read", rt.calcReadingTime(), "DOWN") assertEquals("1 min read", rt.calcReadingTime(), "RoundingMode.DOWN")
} }
} }