| 242 | } |
| 243 | |
| 244 | func TestTransform_Basic(t *testing.T) { |
| 245 | reader := FromSlice([]int{1, 2, 3, 4, 5}) |
| 246 | |
| 247 | doubled := Transform(reader, func(v int) (int, error) { |
| 248 | return v * 2, nil |
| 249 | }) |
| 250 | defer doubled.Close() |
| 251 | |
| 252 | result, err := doubled.Collect() |
| 253 | if err != nil { |
| 254 | t.Fatalf("unexpected error: %v", err) |
| 255 | } |
| 256 | |
| 257 | expected := []int{2, 4, 6, 8, 10} |
| 258 | if len(result) != len(expected) { |
| 259 | t.Fatalf("expected %d items, got %d", len(expected), len(result)) |
| 260 | } |
| 261 | for i, v := range result { |
| 262 | if v != expected[i] { |
| 263 | t.Errorf("at index %d: expected %d, got %d", i, expected[i], v) |
| 264 | } |
| 265 | } |
| 266 | } |
| 267 | |
| 268 | func TestTransform_WithSkip(t *testing.T) { |
| 269 | reader := FromSlice([]int{1, 2, 3, 4, 5, 6}) |