---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 139
  claims_with_evidence: 139
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：nu-utils 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：139 / 139、根拠なし：0
- 優先レビュー（高）
  1. なし（全テストケースに根拠あり）

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `crates/nu-utils/src/lib.rs` - モジュール公開API定義
- E-02: `crates/nu-utils/src/deansi.rs` - ANSIエスケープシーケンス除去関数（strip_ansi_unlikely, strip_ansi_likely, strip_ansi_string_unlikely, strip_ansi_string_likely）
- E-03: `crates/nu-utils/src/casing.rs` - 大文字小文字無視拡張トレイト（IgnoreCaseExt: to_folded_case, eq_ignore_case, cmp_ignore_case）
- E-04: `crates/nu-utils/src/emoji.rs` - 絵文字検出関数（contains_emoji）
- E-05: `crates/nu-utils/src/float.rs` - 浮動小数点表示ラッパー（ObviousFloat: Display, LowerExp）
- E-06: `crates/nu-utils/src/filesystem.rs` - ファイルシステム権限チェック（have_permission, PermissionResult）、Unix専用ユーザー関数（users::get_user_by_uid, get_group_by_gid, get_current_uid, get_current_gid, get_current_username, current_user_groups, get_user_groups）
- E-07: `crates/nu-utils/src/flatten_json.rs` - JSON平坦化（JsonFlattener: new, flatten, flatten_object, flatten_array, flatten_value, filter_known_keys）
- E-08: `crates/nu-utils/src/locale.rs` - ロケール取得（get_system_locale, get_system_locale_string, LOCALE_OVERRIDE_ENV_VAR）
- E-09: `crates/nu-utils/src/quoting.rs` - 文字列クォート処理（needs_quoting, escape_quote_string, as_raw_string）
- E-10: `crates/nu-utils/src/multilife.rs` - 複数ライフタイム参照型（MultiLife: Deref）
- E-11: `crates/nu-utils/src/nu_cow.rs` - Nu専用Cowデータ型（NuCow: PartialEq, Debug, Clone, Deserialize）
- E-12: `crates/nu-utils/src/shared_cow.rs` - 共有Copy-on-Write型（SharedCow: new, into_owned, to_mut, into_arc, ref_count, From, Deref, Serialize, Deserialize）
- E-13: `crates/nu-utils/src/split_read.rs` - 分割読み取りイテレータ（SplitRead: new, Iterator::next）、既存テスト（simple, with_empty_fields, complex_delimiter, all_empty, empty_delimiter, delimiter_spread_across_reads）
- E-14: `crates/nu-utils/src/utils.rs` - ユーティリティ関数（enable_vt_processing, stdout_write_all_and_flush, stderr_write_all_and_flush, ConfigFileKind, get_ls_colors, terminal_size）
- E-15: `crates/nu-utils/src/strings/mod.rs` - 文字列型モジュール定義
- E-16: `crates/nu-utils/src/strings/unique.rs` - ユニーク文字列型（UniqueString: as_str, as_bytes, len, is_empty, from_string, from_static_str, from_fmt, Clone, PartialEq, Ord, Serialize, Deserialize）、既存テスト（macro_works）
- E-17: `crates/nu-utils/src/strings/shared.rs` - 共有文字列型（SharedString: as_str, as_bytes, len, is_empty, from_string, from_static_str, from_fmt, Clone, PartialEq, Ord, Serialize, Deserialize）、既存テスト（macro_works）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | strip_ansi_unlikely: ANSI制御文字なしでCow::Borrowed返却 | E-02 (line 11-22) | ○ |
| C-02 | strip_ansi_unlikely: ANSI制御文字ありでANSI除去 | E-02 (line 11-22) | ○ |
| C-03 | strip_ansi_unlikely: 改行(LF)は保持 | E-02 (line 15, コメント line 8) | ○ |
| C-04 | strip_ansi_unlikely: タブは除去 | E-02 (line 15, 11..=31) | ○ |
| C-05 | strip_ansi_unlikely: 空文字列処理 | E-02 (line 15 any) | ○ |
| C-06 | strip_ansi_likely: 常にstrip処理実行 | E-02 (line 31-40) | ○ |
| C-07 | strip_ansi_likely: ANSI除去 | E-02 (line 35-36) | ○ |
| C-08 | strip_ansi_string_unlikely: 所有型処理 | E-02 (line 50-64) | ○ |
| C-09 | strip_ansi_string_unlikely: ANSI除去 | E-02 (line 58-60) | ○ |
| C-10 | strip_ansi_string_likely: ANSI除去 | E-02 (line 73-82) | ○ |
| C-11 | to_folded_case: 大文字小文字変換 | E-03 (line 37-38) | ○ |
| C-12 | to_folded_case: Unicode対応 | E-03 (line 5-12, UniCase使用) | ○ |
| C-13 | eq_ignore_case: 等価判定 | E-03 (line 41-43) | ○ |
| C-14 | eq_ignore_case: 不等判定 | E-03 (line 41-43) | ○ |
| C-15 | eq_ignore_case: 空文字列比較 | E-03 (line 41-43) | ○ |
| C-16 | cmp_ignore_case: 順序比較 | E-03 (line 45-47) | ○ |
| C-17 | cmp_ignore_case: Lessケース | E-03 (line 45-47) | ○ |
| C-18 | contains_emoji: ZWJ検出 | E-04 (line 3, 13) | ○ |
| C-19 | contains_emoji: VS16検出 | E-04 (line 4, 14) | ○ |
| C-20 | contains_emoji: スキントーン検出 | E-04 (line 5-11, 15) | ○ |
| C-21 | contains_emoji: 絵文字なし | E-04 (line 13-15, any) | ○ |
| C-22 | contains_emoji: 空文字列 | E-04 (line 13-15) | ○ |
| C-23 | ObviousFloat::Display: 整数表示 | E-05 (line 9-10) | ○ |
| C-24 | ObviousFloat::Display: 小数表示 | E-05 (line 11-12) | ○ |
| C-25 | ObviousFloat::Display: ゼロ表示 | E-05 (line 9-10, fract()==0.0) | ○ |
| C-26 | ObviousFloat::LowerExp: 指数表記 | E-05 (line 17-20) | ○ |
| C-27 | PermissionResult::From Ok | E-06 (line 149-155) | ○ |
| C-28 | PermissionResult::From Err | E-06 (line 149-155) | ○ |
| C-29 | have_permission: アクセス可能 | E-06 (line 29-39) | ○ |
| C-30 | have_permission: アクセス不可 | E-06 (line 29-39) | ○ |
| C-31 | get_user_by_uid: 有効UID | E-06 (line 45-47) | ○ |
| C-32 | get_user_by_uid: 無効UID | E-06 (line 45-47, flatten) | ○ |
| C-33 | get_group_by_gid: 有効GID | E-06 (line 49-51) | ○ |
| C-34 | get_current_uid: UID取得 | E-06 (line 53-55) | ○ |
| C-35 | get_current_gid: GID取得 | E-06 (line 57-59) | ○ |
| C-36 | JsonFlattener::new | E-07 (line 67-71) | ○ |
| C-37 | JsonFlattener::Default | E-07 (line 34-42) | ○ |
| C-38 | JsonFlattener::flatten ネストオブジェクト | E-07 (line 100-112) | ○ |
| C-39 | JsonFlattener::flatten 配列 | E-07 (line 147-193) | ○ |
| C-40 | JsonFlattener::flatten プリミティブ | E-07 (line 109) | ○ |
| C-41 | JsonFlattener::flatten カスタムセパレータ | E-07 (line 17, 124) | ○ |
| C-42 | JsonFlattener::flatten preserve_arrays | E-07 (line 29-31, 163-167) | ○ |
| C-43 | JsonFlattener::flatten span除外 | E-07 (line 127-130) | ○ |
| C-44 | JsonFlattener::flatten 空オブジェクト | E-07 (line 100-112) | ○ |
| C-45 | JsonFlattener::flatten 空配列 | E-07 (line 147-153) | ○ |
| C-46 | filter_known_keys .String.val | E-07 (line 224-226) | ○ |
| C-47 | filter_known_keys .Record.val | E-07 (line 227-229) | ○ |
| C-48 | get_system_locale: ロケール取得 | E-08 (line 5-21) | ○ |
| C-49 | get_system_locale: フォールバック | E-08 (line 12-19) | ○ |
| C-50 | get_system_locale_string: 環境変数 | E-08 (line 24-37) | ○ |
| C-51 | needs_quoting: 空文字列 | E-09 (line 15-17) | ○ |
| C-52 | needs_quoting: true | E-09 (line 23) | ○ |
| C-53 | needs_quoting: false | E-09 (line 23) | ○ |
| C-54 | needs_quoting: null | E-09 (line 23) | ○ |
| C-55 | needs_quoting: 特殊文字 | E-09 (line 9-11) | ○ |
| C-56 | needs_quoting: 数字 | E-09 (line 10, \d) | ○ |
| C-57 | needs_quoting: 英字のみ | E-09 (line 14-28) | ○ |
| C-58 | needs_quoting: inf | E-09 (line 10) | ○ |
| C-59 | needs_quoting: nan | E-09 (line 10) | ○ |
| C-60 | escape_quote_string: 基本 | E-09 (line 30-43) | ○ |
| C-61 | escape_quote_string: ダブルクォート | E-09 (line 35-37) | ○ |
| C-62 | escape_quote_string: バックスラッシュ | E-09 (line 35-37) | ○ |
| C-63 | escape_quote_string: 空文字列 | E-09 (line 30-43) | ○ |
| C-64 | as_raw_string: 不要ケース | E-09 (line 53-56) | ○ |
| C-65 | as_raw_string: ダブルクォート | E-09 (line 53-72) | ○ |
| C-66 | as_raw_string: バックスラッシュ | E-09 (line 53-72) | ○ |
| C-67 | as_raw_string: delimiter衝突 | E-09 (line 61-68) | ○ |
| C-68 | MultiLife::Deref Out | E-10 (line 12-25) | ○ |
| C-69 | MultiLife::Deref Local | E-10 (line 12-25) | ○ |
| C-70 | NuCow::PartialEq Owned | E-11 (line 13-26) | ○ |
| C-71 | NuCow::PartialEq Borrowed | E-11 (line 13-26) | ○ |
| C-72 | NuCow::PartialEq クロス比較 | E-11 (line 21) | ○ |
| C-73 | NuCow::Debug alternate | E-11 (line 34-38) | ○ |
| C-74 | NuCow::Debug 通常 | E-11 (line 39-43) | ○ |
| C-75 | NuCow::Clone Borrowed | E-11 (line 48-59) | ○ |
| C-76 | NuCow::Clone Owned | E-11 (line 48-59) | ○ |
| C-77 | NuCow::Deserialize | E-11 (line 61-71) | ○ |
| C-78 | SharedCow::new | E-12 (line 16-18) | ○ |
| C-79 | SharedCow::into_owned 非共有 | E-12 (line 21-27) | ○ |
| C-80 | SharedCow::into_owned 共有 | E-12 (line 21-27, Err) | ○ |
| C-81 | SharedCow::to_mut 非共有 | E-12 (line 31-33) | ○ |
| C-82 | SharedCow::to_mut 共有 | E-12 (line 31-33, make_mut) | ○ |
| C-83 | SharedCow::into_arc | E-12 (line 36-38) | ○ |
| C-84 | SharedCow::ref_count | E-12 (line 41-43) | ○ |
| C-85 | SharedCow::From<T> | E-12 (line 46-53) | ○ |
| C-86 | SharedCow::From<Arc<T>> | E-12 (line 55-62) | ○ |
| C-87 | SharedCow::Deref | E-12 (line 107-113) | ○ |
| C-88 | SharedCow::Serialize | E-12 (line 83-93) | ○ |
| C-89 | SharedCow::Deserialize | E-12 (line 95-105) | ○ |
| C-90 | SplitRead::new | E-13 (line 11-20) | ○ |
| C-91 | SplitRead::new 空デリミタ | E-13 (line 14, debug_assert) | ○ |
| C-92 | SplitRead::Iterator 基本分割 | E-13 (line 66-76, test simple) | ○ |
| C-93 | SplitRead::Iterator 空フィールド | E-13 (line 78-94, test with_empty_fields) | ○ |
| C-94 | SplitRead::Iterator 複数文字デリミタ | E-13 (line 96-112, test complex_delimiter) | ○ |
| C-95 | SplitRead::Iterator 境界またぎ | E-13 (line 137-153, test delimiter_spread_across_reads) | ○ |
| C-96 | SplitRead::Iterator デリミタのみ | E-13 (line 114-127, test all_empty) | ○ |
| C-97 | enable_vt_processing | E-14 (line 9-21) | ○ |
| C-98 | stdout_write_all_and_flush | E-14 (line 69-76) | ○ |
| C-99 | stderr_write_all_and_flush | E-14 (line 78-88) | ○ |
| C-100 | ConfigFileKind::default Config | E-14 (line 98-103) | ○ |
| C-101 | ConfigFileKind::default Env | E-14 (line 98-103) | ○ |
| C-102 | ConfigFileKind::scaffold | E-14 (line 105-110) | ○ |
| C-103 | ConfigFileKind::doc | E-14 (line 112-117) | ○ |
| C-104 | ConfigFileKind::name | E-14 (line 119-124) | ○ |
| C-105 | ConfigFileKind::path | E-14 (line 126-131) | ○ |
| C-106 | ConfigFileKind::default_path | E-14 (line 133-138) | ○ |
| C-107 | ConfigFileKind::nu_const_path | E-14 (line 140-145) | ○ |
| C-108 | ConfigFileKind::Display | E-14 (line 148-152) | ○ |
| C-109 | get_ls_colors 環境変数あり | E-14 (line 154-157) | ○ |
| C-110 | get_ls_colors 環境変数なし | E-14 (line 157-490) | ○ |
| C-111 | terminal_size os有効 | E-14 (line 525-531) | ○ |
| C-112 | terminal_size os無効 | E-14 (line 529-530) | ○ |
| C-113 | UniqueString::as_str | E-16 (line 49-52) | ○ |
| C-114 | UniqueString::as_bytes | E-16 (line 55-58) | ○ |
| C-115 | UniqueString::len | E-16 (line 61-64) | ○ |
| C-116 | UniqueString::is_empty 空 | E-16 (line 67-70) | ○ |
| C-117 | UniqueString::is_empty 非空 | E-16 (line 67-70) | ○ |
| C-118 | UniqueString::from_string | E-16 (line 73-76) | ○ |
| C-119 | UniqueString::from_static_str | E-16 (line 83-85) | ○ |
| C-120 | UniqueString::from_fmt | E-16 (line 92-95) | ○ |
| C-121 | UniqueString::Clone | E-16 (line 112-117) | ○ |
| C-122 | UniqueString::PartialEq | E-16 (line 179-184) | ○ |
| C-123 | UniqueString::Ord | E-16 (line 172-177) | ○ |
| C-124 | UniqueString::Serialize | E-16 (line 193-200) | ○ |
| C-125 | UniqueString::Deserialize | E-16 (line 202-210) | ○ |
| C-126 | SharedString::as_str | E-17 (line 49-52) | ○ |
| C-127 | SharedString::as_bytes | E-17 (line 55-58) | ○ |
| C-128 | SharedString::len | E-17 (line 61-64) | ○ |
| C-129 | SharedString::is_empty 空 | E-17 (line 67-70) | ○ |
| C-130 | SharedString::is_empty 非空 | E-17 (line 67-70) | ○ |
| C-131 | SharedString::from_string | E-17 (line 73-76) | ○ |
| C-132 | SharedString::from_static_str | E-17 (line 83-85) | ○ |
| C-133 | SharedString::from_fmt 動的 | E-17 (line 92-98) | ○ |
| C-134 | SharedString::from_fmt 静的 | E-17 (line 94-95) | ○ |
| C-135 | SharedString::Clone | E-17 (line 115-120) | ○ |
| C-136 | SharedString::PartialEq | E-17 (line 182-186) | ○ |
| C-137 | SharedString::Ord | E-17 (line 175-179) | ○ |
| C-138 | SharedString::Serialize | E-17 (line 196-203) | ○ |
| C-139 | SharedString::Deserialize | E-17 (line 205-212) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - すべてのテストケースにソースコード上の根拠が存在

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードに基づいて生成されている
- 注意点:
  - Unix専用関数（filesystem.rs内のusersモジュール）はUNIX環境でのみテスト可能
  - Windows専用関数（enable_vt_processing）はWindows環境でのみテスト可能
  - terminal_size関数はos feature有効/無効で動作が異なる

## 6) レビュアーチェックリスト（最小）
- [ ] 各テストケースの入力値と期待結果が実際のソースコード動作と一致しているか確認
- [ ] プラットフォーム依存（Unix/Windows）のテストケースが適切に分類されているか確認
- [ ] 境界値テストケース（空文字列、空配列等）が十分にカバーされているか確認
- [ ] 既存のユニットテスト（split_read.rs, nu_cow.rs, strings/unique.rs, strings/shared.rs）との整合性を確認
- [ ] feature flag（os feature）によって動作が変わるコードのテストケースを確認
