Class EdgeCases

java.lang.Object
cloud.opencode.base.test.data.EdgeCases

public final class EdgeCases extends Object
EdgeCases - Generates boundary and edge case values for common types 边界用例 - 为常见类型生成边界值和边缘用例值

Provides pre-built lists of boundary values for primitive types, strings, collections, and date/time types. Useful for parameterized tests that need to cover edge conditions.

为基本类型、字符串、集合和日期/时间类型提供预构建的边界值列表。 适用于需要覆盖边界条件的参数化测试。

Features | 主要功能:

  • Numeric boundary values (min, max, zero, overflow edges) - 数值边界值(最小、最大、零、溢出边界)
  • String edge cases (null, empty, whitespace) - 字符串边缘用例(null、空、空白)
  • Collection edge cases (null, empty, singleton with null) - 集合边缘用例(null、空、含null的单元素)
  • Date and Duration boundaries - 日期和持续时间边界

Usage Examples | 使用示例:

// Test all integer edge cases
for (Integer value : EdgeCases.forInt()) {
    assertDoesNotThrow(() -> myMethod(value));
}

// Use with JUnit @MethodSource
static Stream<String> stringEdgeCases() {
    return EdgeCases.forString().stream();
}

// Non-null string variants
for (String s : EdgeCases.forStringNonNull()) {
    assertEquals(s, myTrimMethod(s).trim());
}

Security | 安全性:

  • Thread-safe: Yes (all methods return immutable or independent lists) - 线程安全: 是(所有方法返回不可变或独立的列表)
  • Null-safe: Some lists contain null by design - 空值安全: 部分列表设计上包含null
Since:
JDK 25, opencode-base-test V1.0.3
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • forInt

      public static List<Integer> forInt()
      Returns edge case values for int/Integer. 返回int/Integer的边缘用例值。

      Includes: MIN_VALUE, -1, 0, 1, MAX_VALUE

      包括: MIN_VALUE, -1, 0, 1, MAX_VALUE

      Returns:
      list of edge case integers | 边缘用例整数列表
    • forLong

      public static List<Long> forLong()
      Returns edge case values for long/Long. 返回long/Long的边缘用例值。

      Includes: MIN_VALUE, -1L, 0L, 1L, MAX_VALUE

      包括: MIN_VALUE, -1L, 0L, 1L, MAX_VALUE

      Returns:
      list of edge case longs | 边缘用例长整数列表
    • forDouble

      public static List<Double> forDouble()
      Returns edge case values for double/Double. 返回double/Double的边缘用例值。

      Includes: NEGATIVE_INFINITY, MIN_VALUE, -1.0, -0.0, 0.0, MIN_NORMAL, 1.0, MAX_VALUE, POSITIVE_INFINITY, NaN

      包括: 负无穷, 最小值, -1.0, -0.0, 0.0, 最小正常值, 1.0, 最大值, 正无穷, NaN

      Returns:
      list of edge case doubles | 边缘用例双精度浮点数列表
    • forFloat

      public static List<Float> forFloat()
      Returns edge case values for float/Float. 返回float/Float的边缘用例值。

      Includes: NEGATIVE_INFINITY, MIN_VALUE, -1.0f, -0.0f, 0.0f, MIN_NORMAL, 1.0f, MAX_VALUE, POSITIVE_INFINITY, NaN

      包括: 负无穷, 最小值, -1.0f, -0.0f, 0.0f, 最小正常值, 1.0f, 最大值, 正无穷, NaN

      Returns:
      list of edge case floats | 边缘用例单精度浮点数列表
    • forString

      public static List<String> forString()
      Returns edge case values for String, including null. 返回String的边缘用例值,包括null。

      Includes: null, "", " ", "\t", "\n", "a", 128-char string

      包括: null, 空串, 空格, 制表符, 换行符, 单字符, 128字符串

      Returns:
      list of edge case strings (contains null) | 边缘用例字符串列表(包含null)
    • forStringNonNull

      public static List<String> forStringNonNull()
      Returns edge case values for String, excluding null. 返回String的边缘用例值,不包括null。

      Includes: "", " ", "\t", "\n", "a", 128-char string

      包括: 空串, 空格, 制表符, 换行符, 单字符, 128字符串

      Returns:
      list of edge case strings (no null) | 边缘用例字符串列表(无null)
    • forList

      public static <T> List<List<T>> forList()
      Returns edge case values for List, including null. 返回List的边缘用例值,包括null。

      Includes: null, empty list, singleton list containing null

      包括: null, 空列表, 包含null的单元素列表

      Type Parameters:
      T - the element type | 元素类型
      Returns:
      list of edge case lists (contains null entries) | 边缘用例列表的列表(包含null条目)
    • forListNonNull

      public static <T> List<List<T>> forListNonNull()
      Returns edge case values for List, excluding null. 返回List的边缘用例值,不包括null。

      Includes: empty list, singleton list containing null

      包括: 空列表, 包含null的单元素列表

      Type Parameters:
      T - the element type | 元素类型
      Returns:
      list of edge case lists (no null list) | 边缘用例列表的列表(无null列表)
    • forByte

      public static List<Byte> forByte()
      Returns edge case values for byte/Byte. 返回byte/Byte的边缘用例值。

      Includes: MIN_VALUE, -1, 0, 1, MAX_VALUE

      包括: MIN_VALUE, -1, 0, 1, MAX_VALUE

      Returns:
      list of edge case bytes | 边缘用例字节列表
    • forShort

      public static List<Short> forShort()
      Returns edge case values for short/Short. 返回short/Short的边缘用例值。

      Includes: MIN_VALUE, -1, 0, 1, MAX_VALUE

      包括: MIN_VALUE, -1, 0, 1, MAX_VALUE

      Returns:
      list of edge case shorts | 边缘用例短整数列表
    • forChar

      public static List<Character> forChar()
      Returns edge case values for char/Character. 返回char/Character的边缘用例值。

      Includes: MIN_VALUE (0), 'a', 'z', 'A', 'Z', '0', '9', MAX_VALUE

      包括: 最小值(0), 'a', 'z', 'A', 'Z', '0', '9', 最大值

      Returns:
      list of edge case characters | 边缘用例字符列表
    • forBoolean

      public static List<Boolean> forBoolean()
      Returns edge case values for boolean/Boolean. 返回boolean/Boolean的边缘用例值。

      Includes: true, false

      包括: true, false

      Returns:
      list of edge case booleans | 边缘用例布尔值列表
    • forLocalDate

      public static List<LocalDate> forLocalDate()
      Returns edge case values for LocalDate. 返回LocalDate的边缘用例值。

      Includes: MIN, epoch (1970-01-01), today, MAX

      包括: 最小值, 纪元(1970-01-01), 今天, 最大值

      Returns:
      list of edge case dates | 边缘用例日期列表
    • forDuration

      public static List<Duration> forDuration()
      Returns edge case values for Duration. 返回Duration的边缘用例值。

      Includes: negative (-1s), ZERO, 1ms, 1s, 1h, 1day, max supported duration

      包括: 负值(-1秒), 零, 1毫秒, 1秒, 1小时, 1天, 最大支持的持续时间

      Returns:
      list of edge case durations | 边缘用例持续时间列表