Слияние ветки dev/v1.0.1
Небольшие дополнения: - Добавлен режим verbose для функции checkRegisterShort() Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
@@ -4,7 +4,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "ru.thiflict.binaryutils"
|
group = "ru.thiflict.binaryutils"
|
||||||
version = "1.0.0"
|
version = "1.0.1"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
@@ -27,7 +27,7 @@ publishing {
|
|||||||
create<MavenPublication>("maven") {
|
create<MavenPublication>("maven") {
|
||||||
groupId = "ru.thiflict.binaryutils"
|
groupId = "ru.thiflict.binaryutils"
|
||||||
artifactId = "binary-utils"
|
artifactId = "binary-utils"
|
||||||
version = "1.0.0"
|
version = "1.0.1"
|
||||||
|
|
||||||
from(components["java"])
|
from(components["java"])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
|
# Этот скрипт для обычных юзеров ничего из себя не представляет
|
||||||
|
# Только для меинтеинера.
|
||||||
export $(cat .env | xargs)
|
export $(cat .env | xargs)
|
||||||
./gradlew publish
|
./gradlew publish
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# BinaryUtils
|
# BinaryUtils
|
||||||
пока пох на описание лмао
|
Детальная информация о проекте лежит в Wiki
|
||||||
|
|
||||||
как импортировать в проект:
|
как импортировать в проект:
|
||||||
|
|
||||||
@@ -12,6 +12,6 @@ repositories {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Добавить в dependencies
|
// Добавить в dependencies
|
||||||
implementation("ru.thiflict.binaryutils:binary-utils:1.0.0")
|
implementation("ru.thiflict.binaryutils:binary-utils:1.0.0") // У релизов всегда актуальная версия
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -17,14 +17,39 @@ object BinCheck {
|
|||||||
* Тип данных для проверяемого числа [Short].
|
* Тип данных для проверяемого числа [Short].
|
||||||
* Тип данных для проверяемого регистра [Byte]
|
* Тип данных для проверяемого регистра [Byte]
|
||||||
*
|
*
|
||||||
|
* Регистр *не может быть* **отрицательным** или **больше 15**
|
||||||
|
*
|
||||||
* Пример:
|
* Пример:
|
||||||
* ```
|
* ```
|
||||||
* checkRegisterShort(8, 3)
|
* checkRegisterShort(8, 3)
|
||||||
* ```
|
* ```
|
||||||
* @return true
|
* @return [Boolean]
|
||||||
|
* @throws IllegalArgumentException
|
||||||
*/
|
*/
|
||||||
fun checkRegisterShort(input: Short, register: Byte): Boolean {
|
fun checkRegisterShort(input: Short, register: Byte, verbose: Boolean = false): Boolean {
|
||||||
|
// Защиты от дурачков
|
||||||
|
if (register < 0) throw IllegalArgumentException("Проверяемый регистр не может быть отрицательным!")
|
||||||
|
if (register > 15) throw IllegalArgumentException("Проверяемый регистр не может быть больше, чем количество регистров Short!")
|
||||||
|
|
||||||
|
if (verbose) println("Debug: checkRegisterShort(): Выполнена проверка на IllegalArgumentException")
|
||||||
|
|
||||||
val binaryString = String.format("%16s", input.toInt().toString(2).replace(' ', '0'))
|
val binaryString = String.format("%16s", input.toInt().toString(2).replace(' ', '0'))
|
||||||
|
|
||||||
|
if (verbose) println("Debug: checkRegisterShort(): ${
|
||||||
|
if (binaryString.startsWith("-")) {
|
||||||
|
val binaryStringFormatted = binaryString
|
||||||
|
.drop(1)
|
||||||
|
.chunked(4)
|
||||||
|
.joinToString(" ")
|
||||||
|
"-$binaryStringFormatted"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
binaryString
|
||||||
|
.chunked(4)
|
||||||
|
.joinToString(" ")
|
||||||
|
}
|
||||||
|
}")
|
||||||
|
|
||||||
val index = 15 - register.toInt()
|
val index = 15 - register.toInt()
|
||||||
return binaryString[index] == '1'
|
return binaryString[index] == '1'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,4 +35,11 @@ fun main() {
|
|||||||
|
|
||||||
// Тест 10: Проверка значения -1 в регистре 0 (должно быть true, так как все биты установлены)
|
// Тест 10: Проверка значения -1 в регистре 0 (должно быть true, так как все биты установлены)
|
||||||
println("Тест 10: checkRegisterShort(-1, 0) = ${checkRegisterShort(-1, 0.toByte())}")
|
println("Тест 10: checkRegisterShort(-1, 0) = ${checkRegisterShort(-1, 0.toByte())}")
|
||||||
|
|
||||||
|
// Тест на кидание IllegalArgumentException №1
|
||||||
|
// println("Тест 11: checkRegisterShort(5, -1) = ${checkRegisterShort(5, (-1).toByte())}")
|
||||||
|
|
||||||
|
// Тест на кидание IllegalArgumentException №2
|
||||||
|
// println("Тест 11: checkRegisterShort(25, 16) = ${checkRegisterShort(32767.toShort(), 15.toByte(), true)}")
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user