Skip to content

Conversation

@endou-mame
Copy link
Collaborator

Fixes #31

  一般的なIntegerRangeの仕様でお願いいたします。(あまりリッチな公開メソッドはいらないです。最低限の公開メソッドで
  かまいません)
  実装の仕方については既存のコードを入念に調査して、同じように実装してください。
  遠慮せず全力を尽くしてください。

---

● IntegerRangeクラスの実装が完了しました。LocalDateRangeを参考にして、以下の機能を持つIntegerRangeクラスを実装しました
  :

  1. 基本機能:
    - 閉区間、開区間、半開区間(左開・右開)の4種類の範囲タイプをサポート
    - 範囲の妥当性検証(開始値≤終了値)
    - 文字列表現(例:[1, 10]、(1, 10))
  2. 主な公開メソッド:
    - contains(): 指定した整数が範囲内に含まれるかチェック
    - overlaps(): 他の範囲との重なりチェック
    - count(): 範囲内の整数の個数を取得
    - iterate(): 範囲内の整数を順に返すジェネレータ
    - equals(): 等価性チェック
  3. ファクトリメソッド:
    - from(), closed(), open(), halfOpenLeft(), halfOpenRight()
    - tryFrom(): エラーハンドリング対応
    - fromNullable(), tryFromNullable(): null対応
  4. その他:
    - 負の整数範囲もサポート
    - JSON変換機能
    - PHPUnit によるテストコード(31のテストケース)
    - サンプルコード付き

  実装は既存のLocalDateRangeクラスと同じスタイルで行い、テストも全て通過しています。
@endou-mame endou-mame self-assigned this Jul 6, 2025
@endou-mame endou-mame changed the title Endou-mame/issue31 [feat] IntegerRange 値オブジェクト追加 Jul 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] IntegerRange 値オブジェクト追加

1 participant