Add method to test whether a string is a valid pinyin with tone number syllable #1

Merged
marvinelsen merged 2 commits from add-is-valid-method into main 2024-09-20 10:58:27 +00:00
Showing only changes of commit ba16e25917 - Show all commits

View File

@ -2,6 +2,7 @@ package com.marvinelsen.chinese.transliteration
import java.io.InputStream import java.io.InputStream
@Suppress("MagicNumber", "MaximumLineLength", "MaxLineLength")
data class Syllable( data class Syllable(
val pinyinSyllableWithoutTone: String, val pinyinSyllableWithoutTone: String,
val tone: Tone, val tone: Tone,
@ -23,7 +24,6 @@ data class Syllable(
require(lastCharacter.isDigit()) { require(lastCharacter.isDigit()) {
"'$pinyinWithToneNumber' is not a valid Pinyin with tone number syllable. Expected the last character to be a digit, but was '${pinyinWithToneNumber.last()}'" "'$pinyinWithToneNumber' is not a valid Pinyin with tone number syllable. Expected the last character to be a digit, but was '${pinyinWithToneNumber.last()}'"
} }
@Suppress("MagicNumber")
require(lastCharacter.digitToInt() in 1..5) { require(lastCharacter.digitToInt() in 1..5) {
"'$pinyinWithToneNumber' is not a valid Pinyin with tone number syllable. Expected the tone number 'n' to be in range 1 <= n <= 5, but was '${pinyinWithToneNumber.last()}'" "'$pinyinWithToneNumber' is not a valid Pinyin with tone number syllable. Expected the tone number 'n' to be in range 1 <= n <= 5, but was '${pinyinWithToneNumber.last()}'"
} }
@ -45,7 +45,7 @@ data class Syllable(
return Syllable( return Syllable(
zhuyinToPinyin[zhuyinWithoutToneMark]!!, zhuyinToPinyin[zhuyinWithoutToneMark]!!,
Tone.fromZhuyinToneMarkOrNull(zhuyin.last()) ?: Tone.fromZhuyinToneMarkOrNull(zhuyin.first()) Tone.fromZhuyinToneMarkOrNull(zhuyin.last()) ?: Tone.fromZhuyinToneMarkOrNull(zhuyin.first())
?: Tone.FIRST ?: Tone.FIRST
) )
} }