Class: Phronomy::Eval::Dataset

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/phronomy/eval/dataset.rb

Overview

An ordered collection of EvalCase objects.

Examples:

Build from a plain array of hashes

dataset = Dataset.from_array([
  { input: "What is 2+2?", expected: "4" },
  { input: "Capital of France?", expected: "Paris" }
])

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cases = []) ⇒ Dataset

Returns a new instance of Dataset.

Parameters:

  • cases (Array<EvalCase>) (defaults to: [])


16
17
18
# File 'lib/phronomy/eval/dataset.rb', line 16

def initialize(cases = [])
  @cases = cases.freeze
end

Class Method Details

.from_array(pairs) ⇒ Dataset

Constructs a Dataset from an Array of Hash-like objects. Each hash must have at least +:input+ and +:expected+ keys. An optional +:metadata+ key is forwarded as-is.

Parameters:

  • pairs (Array<Hash>)

Returns:



26
27
28
# File 'lib/phronomy/eval/dataset.rb', line 26

def self.from_array(pairs)
  new(pairs.map { |h| EvalCase.new(**h) })
end

Instance Method Details

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

Yields:



31
32
33
# File 'lib/phronomy/eval/dataset.rb', line 31

def each(&block)
  @cases.each(&block)
end

#sizeInteger

Returns:

  • (Integer)


36
37
38
# File 'lib/phronomy/eval/dataset.rb', line 36

def size
  @cases.size
end