Package dev.dokimos.core
Record Class Example
java.lang.Object
java.lang.Record
dev.dokimos.core.Example
- Record Components:
inputs- the input valuesexpectedOutputs- the expected output valuesmetadata- additional metadatadatasetItemId- stable id of the server dataset item this example came from, or null for ad-hoc or file/classpath examples; used to pair items across runs
public record Example(Map<String,Object> inputs, Map<String,Object> expectedOutputs, Map<String,Object> metadata, String datasetItemId)
extends Record
A dataset example with inputs, expected outputs, and metadata.
datasetItemId participates in equals/hashCode (record-generated), so a
server-resolved example and an otherwise-identical file/inline example are not equal. This only
matters to callers that dedup examples by equality, which the framework itself does not do.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder for constructing examples with multiple inputs and outputs. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Example.Builderbuilder()Creates a new builder for constructing examples.Returns the value of thedatasetItemIdrecord component.final booleanIndicates whether some other object is "equal to" this one.Returns the primary expected output value.<T> TexpectedOutputAs(OutputType<T> type) Reads the primary expected output ("output") converted to the given generic type.<T> TexpectedOutputAs(Class<T> type) Reads the primary expected output ("output") converted to the given type.<T> TexpectedOutputAs(String key, OutputType<T> type) Reads the expected output underkeyconverted to the given generic type.<T> TexpectedOutputAs(String key, Class<T> type) Reads the expected output underkeyconverted to the given type.Returns the value of theexpectedOutputsrecord component.final inthashCode()Returns a hash code value for this object.input()Returns the primary input value.<T> TinputAs(OutputType<T> type) Reads the primary input ("input") converted to the given generic type.<T> TReads the primary input ("input") converted to the given type.<T> TinputAs(String key, OutputType<T> type) Reads the input underkeyconverted to the given generic type.<T> TReads the input underkeyconverted to the given type.inputs()Returns the value of theinputsrecord component.metadata()Returns the value of themetadatarecord component.<T> TmetadataAs(String key, OutputType<T> type) Reads the metadata value underkeyconverted to the given generic type.<T> TmetadataAs(String key, Class<T> type) Reads the metadata value underkeyconverted to the given type.static ExampleCreates an example with a single input and expected output.final StringtoString()Returns a string representation of this record class.toTestCase(String actualOutput) Converts this example to a test case with a single actual output.toTestCase(Map<String, Object> actualOutputs) Converts this example to a test case with the given actual outputs.
-
Constructor Details
-
Example
public Example(Map<String, Object> inputs, Map<String, Object> expectedOutputs, Map<String, Object> metadata, String datasetItemId) Compact constructor that creates immutable copies of all maps. ThedatasetItemIdmay be null. -
Example
public Example(Map<String, Object> inputs, Map<String, Object> expectedOutputs, Map<String, Object> metadata) Creates an example with no dataset item id.- Parameters:
inputs- the input valuesexpectedOutputs- the expected output valuesmetadata- additional metadata
-
-
Method Details
-
of
Creates an example with a single input and expected output.- Parameters:
input- the input valueexpectedOutput- the expected output value- Returns:
- a new example
-
builder
Creates a new builder for constructing examples.- Returns:
- a new builder
-
input
Returns the primary input value.- Returns:
- the input value or null if not present
-
expectedOutput
Returns the primary expected output value.- Returns:
- the expected output value or null if not present
-
expectedOutputAs
Reads the primary expected output ("output") converted to the given type.- Type Parameters:
T- the target type- Parameters:
type- the target class- Returns:
- the converted value, or
nullif no"output"entry is present - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
expectedOutputAs
Reads the primary expected output ("output") converted to the given generic type.- Type Parameters:
T- the target type- Parameters:
type- the target generic type token (for examplenew OutputType<List<Foo>>() {})- Returns:
- the converted value, or
nullif no"output"entry is present - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
expectedOutputAs
Reads the expected output underkeyconverted to the given type.- Type Parameters:
T- the target type- Parameters:
key- the expected-output keytype- the target class- Returns:
- the converted value, or
nullifkeyis absent - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
expectedOutputAs
Reads the expected output underkeyconverted to the given generic type.- Type Parameters:
T- the target type- Parameters:
key- the expected-output keytype- the target generic type token- Returns:
- the converted value, or
nullifkeyis absent - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
inputAs
Reads the primary input ("input") converted to the given type.- Type Parameters:
T- the target type- Parameters:
type- the target class- Returns:
- the converted value, or
nullif no"input"entry is present - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
inputAs
Reads the primary input ("input") converted to the given generic type.- Type Parameters:
T- the target type- Parameters:
type- the target generic type token (for examplenew OutputType<List<Foo>>() {})- Returns:
- the converted value, or
nullif no"input"entry is present - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
inputAs
Reads the input underkeyconverted to the given type.- Type Parameters:
T- the target type- Parameters:
key- the input keytype- the target class- Returns:
- the converted value, or
nullifkeyis absent - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
inputAs
Reads the input underkeyconverted to the given generic type.- Type Parameters:
T- the target type- Parameters:
key- the input keytype- the target generic type token- Returns:
- the converted value, or
nullifkeyis absent - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
metadataAs
Reads the metadata value underkeyconverted to the given type.- Type Parameters:
T- the target type- Parameters:
key- the metadata keytype- the target class- Returns:
- the converted value, or
nullifkeyis absent - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
metadataAs
Reads the metadata value underkeyconverted to the given generic type.- Type Parameters:
T- the target type- Parameters:
key- the metadata keytype- the target generic type token- Returns:
- the converted value, or
nullifkeyis absent - Throws:
DokimosTypeConversionException- if the stored value cannot be converted totype
-
toTestCase
Converts this example to a test case with the given actual outputs.- Parameters:
actualOutputs- the actual outputs produced by the system- Returns:
- a new test case
-
toTestCase
Converts this example to a test case with a single actual output.- Parameters:
actualOutput- the actual output value- Returns:
- a new test case
-
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
inputs
Returns the value of theinputsrecord component.- Returns:
- the value of the
inputsrecord component
-
expectedOutputs
Returns the value of theexpectedOutputsrecord component.- Returns:
- the value of the
expectedOutputsrecord component
-
metadata
Returns the value of themetadatarecord component.- Returns:
- the value of the
metadatarecord component
-
datasetItemId
Returns the value of thedatasetItemIdrecord component.- Returns:
- the value of the
datasetItemIdrecord component
-