From ea6944c47a4058fdbbc44cda63d5be323055b391 Mon Sep 17 00:00:00 2001 From: olim88 Date: Sat, 8 Mar 2025 04:56:53 +0000 Subject: Add support for Abbreviations in health values (#1199) * Add support for Abbreviations in health values * Fix pattern for K * fix not removing from name due to case change * move try catch into health bars * Clean up parsing --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> --- .../hysky/skyblocker/skyblock/HealthBarsTest.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/test/java/de/hysky/skyblocker/skyblock/HealthBarsTest.java (limited to 'src/test/java') diff --git a/src/test/java/de/hysky/skyblocker/skyblock/HealthBarsTest.java b/src/test/java/de/hysky/skyblocker/skyblock/HealthBarsTest.java new file mode 100644 index 00000000..4b91f8db --- /dev/null +++ b/src/test/java/de/hysky/skyblocker/skyblock/HealthBarsTest.java @@ -0,0 +1,40 @@ +package de.hysky.skyblocker.skyblock; + +import de.hysky.skyblocker.utils.Formatters; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.regex.Matcher; + +public class HealthBarsTest { + + @Test + void testHealthPatternNoAbbreviation() { + Matcher match = HealthBars.HEALTH_PATTERN.matcher("Mob Name 99/100❤"); + Assertions.assertTrue(match.find()); + Assertions.assertEquals(99L, Formatters.parseNumber(match.group(1))); + Assertions.assertEquals(100L, Formatters.parseNumber(match.group(4))); + } + + @Test + void testHealthPatternAbbreviation() { + Matcher match = HealthBars.HEALTH_PATTERN.matcher("Mob Name 100K/3.1M❤"); + Assertions.assertTrue(match.find()); + Assertions.assertEquals(100_000L, Formatters.parseNumber(match.group(1))); + Assertions.assertEquals(3_100_000L, Formatters.parseNumber(match.group(4))); + } + + @Test + void testHealthOnlyPatternNoAbbreviation() { + Matcher match = HealthBars.HEALTH_ONLY_PATTERN.matcher("Mob Name 500❤"); + Assertions.assertTrue(match.find()); + Assertions.assertEquals(500L, Formatters.parseNumber(match.group(1))); + } + + @Test + void testHealthOnlyPatternAbbreviation() { + Matcher match = HealthBars.HEALTH_ONLY_PATTERN.matcher("Mob Name 58M❤"); + Assertions.assertTrue(match.find()); + Assertions.assertEquals(58_000_000L, Formatters.parseNumber(match.group(1))); + } +} -- cgit