@Override
  public String normalise(String text) {
    if (Objects.isNull(text) || text.isEmpty()) {
      throw new IllegalArgumentException("Text cannot be null or empty");
    }
    return text.trim()
        .toLowerCase()
        .replaceAll("\\p{Punct}", "")
        .replaceAll("\\s+", " ");
  }
@Description("Normalise, when text is already lowercased and trimmed, then return the same text")
  @Test
  void normalise_WhenTextIsAlreadyLowercasedAndTrimmed_ThenReturnTheSameText() {
    // When
    var result = textNormaliser.normalise("hello world");

    // Then
    assertThat(result).isEqualTo("hello world");
  }