11package io .quarkiverse .langchain4j .testing .scorer ;
22
3- import static org .assertj .core .api .Assertions .* ;
3+ import static org .assertj .core .api .Assertions .assertThat ;
44
55import java .io .File ;
66import java .io .IOException ;
@@ -14,12 +14,14 @@ class EvaluationReportTest {
1414 @ Test
1515 void globalScoreShouldBeCorrect () {
1616 // Create mock evaluations.
17- Scorer .EvaluationResult <String > result1 = new Scorer .EvaluationResult <> (
17+ Scorer .EvaluationResult <String > result1 = Scorer .EvaluationResult . fromCompletedEvaluation (
1818 new EvaluationSample <>("Sample1" , new Parameters (), "expected" , List .of ("tag1" )),
19+ "expected" ,
1920 true );
2021
21- Scorer .EvaluationResult <String > result2 = new Scorer .EvaluationResult <> (
22+ Scorer .EvaluationResult <String > result2 = Scorer .EvaluationResult . fromCompletedEvaluation (
2223 new EvaluationSample <>("Sample2" , new Parameters (), "expected" , List .of ("tag2" )),
24+ "some-response" ,
2325 false );
2426
2527 EvaluationReport report = new EvaluationReport (List .of (result1 , result2 ));
@@ -31,16 +33,19 @@ void globalScoreShouldBeCorrect() {
3133 @ Test
3234 void scoreForTagShouldBeCorrect () {
3335 // Create mock evaluations.
34- Scorer .EvaluationResult <String > result1 = new Scorer .EvaluationResult <> (
36+ Scorer .EvaluationResult <String > result1 = Scorer .EvaluationResult . fromCompletedEvaluation (
3537 new EvaluationSample <>("Sample1" , new Parameters (), "expected" , List .of ("tag1" )),
38+ "expected" ,
3639 true );
3740
38- Scorer .EvaluationResult <String > result2 = new Scorer .EvaluationResult <> (
41+ Scorer .EvaluationResult <String > result2 = Scorer .EvaluationResult . fromCompletedEvaluation (
3942 new EvaluationSample <>("Sample2" , new Parameters (), "expected" , List .of ("tag2" )),
43+ "some-response" ,
4044 false );
4145
42- Scorer .EvaluationResult <String > result3 = new Scorer .EvaluationResult <> (
46+ Scorer .EvaluationResult <String > result3 = Scorer .EvaluationResult . fromCompletedEvaluation (
4347 new EvaluationSample <>("Sample3" , new Parameters (), "expected" , List .of ("tag1" , "tag2" )),
48+ "expected" ,
4449 true );
4550
4651 EvaluationReport report = new EvaluationReport (List .of (result1 , result2 , result3 ));
@@ -53,12 +58,14 @@ void scoreForTagShouldBeCorrect() {
5358 @ Test
5459 void writeReportShouldGenerateMarkdownFile () throws IOException {
5560 // Create mock evaluations.
56- Scorer .EvaluationResult <String > result1 = new Scorer .EvaluationResult <> (
61+ Scorer .EvaluationResult <String > result1 = Scorer .EvaluationResult . fromCompletedEvaluation (
5762 new EvaluationSample <>("Sample1" , new Parameters (), "expected" , List .of ("tag1" )),
63+ "expected" ,
5864 true );
5965
60- Scorer .EvaluationResult <String > result2 = new Scorer .EvaluationResult <> (
66+ Scorer .EvaluationResult <String > result2 = Scorer .EvaluationResult . fromCompletedEvaluation (
6167 new EvaluationSample <>("Sample2" , new Parameters (), "expected" , List .of ("tag2" )),
68+ "some-response" ,
6269 false );
6370
6471 EvaluationReport report = new EvaluationReport (List .of (result1 , result2 ));
@@ -79,4 +86,40 @@ void writeReportShouldGenerateMarkdownFile() throws IOException {
7986 assertThat (content ).contains ("- Sample1: PASSED" );
8087 assertThat (content ).contains ("- Sample2: FAILED" );
8188 }
89+
90+ @ Test
91+ void writeReportShouldGenerateMarkdownFileIncudingExpectedOutputAndResult () throws IOException {
92+ // Create mock evaluations.
93+ Scorer .EvaluationResult <String > result1 = Scorer .EvaluationResult .fromCompletedEvaluation (
94+ new EvaluationSample <>("Sample1" , new Parameters (), "expected1" , List .of ("tag1" )),
95+ "expected1" ,
96+ true );
97+
98+ Scorer .EvaluationResult <String > result2 = Scorer .EvaluationResult .fromCompletedEvaluation (
99+ new EvaluationSample <>("Sample2" , new Parameters (), "expected2" , List .of ("tag2" )),
100+ "some-response" ,
101+ false );
102+
103+ EvaluationReport report = new EvaluationReport (List .of (result1 , result2 ));
104+
105+ // Write the report to a temporary file.
106+ File tempFile = File .createTempFile ("evaluation-report" , ".md" );
107+ report .writeReport (tempFile , true );
108+
109+ // Assertions
110+ assertThat (tempFile ).exists ();
111+ String content = Files .readString (tempFile .toPath ());
112+ assertThat (content ).contains ("# Evaluation Report" );
113+ assertThat (content ).contains ("**Global Score**: 50.0" );
114+ assertThat (content ).contains ("## Score per tags" );
115+ assertThat (content ).contains ("- **tag1**: 100.0" );
116+ assertThat (content ).contains ("- **tag2**: 0.0" );
117+ assertThat (content ).contains ("## Details" );
118+ assertThat (content ).contains ("### Sample1: PASSED" );
119+ assertThat (content ).contains ("#### Result\n expected1" );
120+ assertThat (content ).contains ("#### Expected Output\n expected1" );
121+ assertThat (content ).contains ("### Sample2: FAILED" );
122+ assertThat (content ).contains ("#### Result\n some-response" );
123+ assertThat (content ).contains ("#### Expected Output\n expected2" );
124+ }
82125}
0 commit comments