Improved tests.
This commit is contained in:
parent
12855c5b3e
commit
c993bd1ee6
1 changed files with 35 additions and 18 deletions
|
@ -32,8 +32,6 @@
|
||||||
|
|
||||||
package net.thauvin.erik.readingtime
|
package net.thauvin.erik.readingtime
|
||||||
|
|
||||||
import net.thauvin.erik.readingtime.ReadingTime.Companion.imgCount
|
|
||||||
import net.thauvin.erik.readingtime.ReadingTime.Companion.wordCount
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
@ -43,43 +41,62 @@ class ReadingTimeTest {
|
||||||
private val blogPost = File("src/test/resources/post.html").readText()
|
private val blogPost = File("src/test/resources/post.html").readText()
|
||||||
private val mediumPost = File("src/test/resources/medium.html").readText()
|
private val mediumPost = File("src/test/resources/medium.html").readText()
|
||||||
|
|
||||||
|
private fun calcImgTime(imgCount: Int): Double {
|
||||||
|
var time = 0.0
|
||||||
|
var offset = 12
|
||||||
|
|
||||||
|
for (i in 1..imgCount) {
|
||||||
|
time += offset
|
||||||
|
if (offset != 3) {
|
||||||
|
offset--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return time
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun calcReadingTime(text: String, wpm: Int): Double {
|
||||||
|
return ReadingTime.wordCount(text) / (wpm / 60.0)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testWordCount() {
|
fun testWordCount() {
|
||||||
assertEquals(0, wordCount(" "))
|
assertEquals(0, ReadingTime.wordCount(" "))
|
||||||
assertEquals(3, wordCount("one two three"))
|
assertEquals(3, ReadingTime.wordCount("one two three"))
|
||||||
assertEquals(2, wordCount(" one two "))
|
assertEquals(2, ReadingTime.wordCount(" one two "))
|
||||||
assertEquals(7, wordCount(rt.text))
|
assertEquals(7, ReadingTime.wordCount(rt.text))
|
||||||
assertEquals(505, wordCount(blogPost))
|
assertEquals(505, ReadingTime.wordCount(blogPost))
|
||||||
assertEquals(391, wordCount(mediumPost))
|
assertEquals(391, ReadingTime.wordCount(mediumPost))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testImgCount() {
|
fun testImgCount() {
|
||||||
assertEquals(1, imgCount(rt.text))
|
assertEquals(1, ReadingTime.imgCount(rt.text))
|
||||||
assertEquals(11, imgCount(blogPost))
|
assertEquals(11, ReadingTime.imgCount(blogPost))
|
||||||
assertEquals(3, imgCount(mediumPost))
|
assertEquals(3, ReadingTime.imgCount(mediumPost))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testReadingTimeInSec() {
|
fun testReadingTimeInSec() {
|
||||||
assertEquals((wordCount(rt.text) / (rt.wpm / 60.0)) + 12.0, rt.calcReadingTimeInSec())
|
assertEquals(calcReadingTime(rt.text, rt.wpm) + calcImgTime(1), rt.calcReadingTimeInSec())
|
||||||
|
|
||||||
rt.text = "<img src=\"#\"> <IMG src=\"#\">"
|
rt.text = "<img src=\"#\"> <IMG src=\"#\">"
|
||||||
assertEquals(12.0 + 11.0, rt.calcReadingTimeInSec())
|
assertEquals(calcImgTime(2), rt.calcReadingTimeInSec())
|
||||||
|
rt.excludeImages = true
|
||||||
|
assertEquals(0.0, rt.calcReadingTimeInSec())
|
||||||
|
rt.excludeImages = false
|
||||||
|
|
||||||
rt.text = blogPost
|
rt.text = blogPost
|
||||||
assertEquals(
|
assertEquals(
|
||||||
(wordCount(rt.text) / (rt.wpm / 60.0)) + 12.0 + 11.0 + 10.0 + 9.0 + 8.0 + 7.0 + 6.0 + 5.0 + 4.0 + 3.0 + 3.0,
|
calcReadingTime(rt.text, rt.wpm) + calcImgTime(11), rt.calcReadingTimeInSec()
|
||||||
rt.calcReadingTimeInSec()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
rt.excludeImages = true
|
rt.excludeImages = true
|
||||||
assertEquals((wordCount(rt.text) / (rt.wpm / 60.0)), rt.calcReadingTimeInSec())
|
assertEquals(calcReadingTime(rt.text, rt.wpm), rt.calcReadingTimeInSec())
|
||||||
rt.excludeImages = false
|
rt.excludeImages = false
|
||||||
|
|
||||||
rt.text = mediumPost
|
rt.text = mediumPost
|
||||||
rt.wpm = 300
|
rt.wpm = 300
|
||||||
assertEquals(wordCount(rt.text) / (300.0 / 60.0) + 12.0 + 11.0 + 10.0, rt.calcReadingTimeInSec())
|
assertEquals(calcReadingTime(rt.text, 300) + calcImgTime(3), rt.calcReadingTimeInSec())
|
||||||
rt.wpm = 275
|
rt.wpm = 275
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue