Class: Braintrust::Eval::Cases

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/braintrust/eval/cases.rb

Overview

Cases wraps test case data (arrays or enumerables) and normalizes them to Case objects Supports lazy evaluation for memory-efficient processing of large datasets

Instance Method Summary collapse

Constructor Details

#initialize(enumerable) ⇒ Cases

Create a new Cases wrapper

Parameters:

  • enumerable (Array, Enumerable)

    The test cases (hashes or Case objects)



14
15
16
17
18
19
20
# File 'lib/braintrust/eval/cases.rb', line 14

def initialize(enumerable)
  unless enumerable.respond_to?(:each)
    raise ArgumentError, "Cases must be enumerable (respond to :each)"
  end

  @enumerable = enumerable
end

Instance Method Details

#countInteger

Get the count of cases Note: For lazy enumerators, this will force evaluation

Returns:

  • (Integer)


35
36
37
# File 'lib/braintrust/eval/cases.rb', line 35

def count
  @enumerable.count
end

#each {|Case| ... } ⇒ Object

Iterate over cases, normalizing each to a Case object

Yields:

  • (Case)

    Each test case



24
25
26
27
28
29
30
# File 'lib/braintrust/eval/cases.rb', line 24

def each
  return enum_for(:each) unless block_given?

  @enumerable.each do |item|
    yield normalize_case(item)
  end
end