Skip to content

Commit d7b90cc

Browse files
committed
Fix LeetCode links parser
1 parent 6e3a9c7 commit d7b90cc

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

leetcode/src/main/kotlin/by/jprof/telegram/bot/leetcode/NaiveRegexSlugExtractor.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package by.jprof.telegram.bot.leetcode
22

3-
private val slugRegex = "https?://leetcode\\.com/problems/(?<slug>.+?)/?".toRegex()
3+
private val slugRegex = "https?://leetcode\\.com/problems/(?<slug>[^/]+).*".toRegex()
44

55
@Suppress("FunctionName")
66
fun NaiveRegexSlugExtractor(message: String): String? {

leetcode/src/test/kotlin/by/jprof/telegram/bot/leetcode/NaiveRegexSlugExtractorTest.kt

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package by.jprof.telegram.bot.leetcode
22

3+
import java.util.stream.Stream
4+
import kotlin.streams.asStream
35
import org.junit.jupiter.api.Assertions.assertEquals
46
import org.junit.jupiter.api.TestInstance
57
import org.junit.jupiter.params.ParameterizedTest
68
import org.junit.jupiter.params.provider.Arguments
79
import org.junit.jupiter.params.provider.MethodSource
8-
import java.util.stream.Stream
9-
import kotlin.streams.asStream
1010

1111
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
1212
internal class NaiveRegexSlugExtractorTest {
@@ -22,6 +22,24 @@ internal class NaiveRegexSlugExtractorTest {
2222
yield(Arguments.of("test", null))
2323
yield(Arguments.of("https://google.com", null))
2424
yield(Arguments.of("https://leetcode.com/problems/two-sum/", "two-sum"))
25+
yield(Arguments.of("https://leetcode.com/problems/two-sum", "two-sum"))
26+
yield(Arguments.of("https://leetcode.com/problems/3sum/", "3sum"))
2527
yield(Arguments.of("https://leetcode.com/problems/3sum", "3sum"))
28+
yield(Arguments.of(
29+
"https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/description/",
30+
"minimum-number-of-arrows-to-burst-balloons"
31+
))
32+
yield(Arguments.of(
33+
"https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/discussion",
34+
"minimum-number-of-arrows-to-burst-balloons"
35+
))
36+
yield(Arguments.of(
37+
"https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/solutions",
38+
"minimum-number-of-arrows-to-burst-balloons"
39+
))
40+
yield(Arguments.of(
41+
"https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/submissions/",
42+
"minimum-number-of-arrows-to-burst-balloons"
43+
))
2644
}.asStream()
2745
}

0 commit comments

Comments
 (0)