diff options
Diffstat (limited to 'support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageReport.kt')
-rw-r--r-- | support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageReport.kt | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageReport.kt b/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageReport.kt deleted file mode 100644 index addcd0262c..0000000000 --- a/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageReport.kt +++ /dev/null @@ -1,143 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause -package org.islandoftex.arara.localization - -import java.io.File - -/** - * Implements the language report model. - * - * @author Island of TeX - * @version 5.0 - * @since 5.0 - */ -data class LanguageReport( - /** - * The file reference. - */ - val reference: File, - /** - * Total of checked lines. - */ - val total: Int, - /** - * List of problematic lines and their corresponding error types. - */ - val lines: Map<Int, Char> -) { - /** - * Language coverage of the file. - */ - val coverage: Float - get() = if (lines.isEmpty()) { - 100f - } else { - (1f - lines.size.toFloat() / total) * 100f - } - - companion object { - /** - * Analyzes the list of lines. - * - * @param file The file to read. - * @return The language report. - */ - internal fun analyze(file: File): LanguageReport { - // holds the current line number - var number = 1 - // holds the number of checked lines - var checked = 0 - - // flag that holds the - // current analysis - var check: Int - - val reportLines = mutableMapOf<Int, Char>() - - // check every line of the language file - file.forEachLine { line -> - // let's only analyze lines - // that are not comments - if (!line.trim().startsWith("#")) { - // increment the checked - // line counter - checked++ - - // line is a parametrized message - check = if (line.contains("{0}")) { - // check the corresponding pattern - checkParametrizedMessage(line) - } else { - // check the corresponding pattern - checkMessage(line) - } - - // we found an error, - // report it - if (check != 0) { - // add line and error type to the report - reportLines[number] = if (check == 1) 'P' else 'S' - } - } - - // let's move to the next line - number++ - } - - // return the language report - return LanguageReport( - reference = file, - total = checked, - lines = reportLines) - } - - /** - * Checks if the provided message follows the simple format. - * - * @param text Message. - * @return An integer value. - */ - private fun checkMessage(text: String): Int { - var i = 0 - var c: Char - for (element in text) { - c = element - i = if (c == '\'') { - if (i == 1) { - return 2 - } else { - 1 - } - } else { - 0 - } - } - return 0 - } - - /** - * Checks if the provided message follows the parametrized format. - * - * @param text Message. - * @return An integer value. - */ - private fun checkParametrizedMessage(text: String): Int { - var i = 0 - var c: Char - for (element in text) { - c = element - if (c == '\'') { - i += 1 - } else { - if (i != 0) { - if (i != 2) { - return 1 - } else { - i = 0 - } - } - } - } - return 0 - } - } -} |