@@ -23,7 +23,7 @@ public function testEmptyYaml()
2323
2424 $ ret = ImportProblemService::parseYaml ($ yaml , $ messages , $ validationMode , PropertyAccess::createPropertyAccessor (), $ problem );
2525 $ this ->assertTrue ($ ret );
26- $ this ->assertEquals ('' , $ problem ->getName ());
26+ $ this ->assertEquals ('Unknown name ' , $ problem ->getName ());
2727 }
2828
2929 public function testMinimalYamlTest ()
@@ -248,4 +248,55 @@ public function testMaximalProblem() {
248248 $ this ->assertEquals (3 , $ problem ->getMultipassLimit ());
249249 $ this ->assertEquals ('special flags ' , $ problem ->getSpecialCompareArgs ());
250250 }
251+
252+ public function testMultipleLanguages () {
253+ $ yaml = <<<YAML
254+ name:
255+ de: deutsch
256+ en: english
257+ YAML ;
258+ $ messages = [];
259+ $ validationMode = 'xxx ' ;
260+ $ problem = new Problem ();
261+
262+ $ ret = ImportProblemService::parseYaml ($ yaml , $ messages , $ validationMode , PropertyAccess::createPropertyAccessor (), $ problem );
263+ $ this ->assertTrue ($ ret );
264+ $ this ->assertEmpty ($ messages );
265+ $ this ->assertEquals ('english ' , $ problem ->getName ());
266+ }
267+
268+ public function testKattisExample ()
269+ {
270+ $ yaml = <<<YAML
271+ problem_format_version: 2023-07-draft
272+ uuid: 5ca6ba5b-36d5-4eff-8aa7-d967cbc4375e
273+ source: Kattis
274+ license: cc by-sa
275+
276+ type: interactive
277+ name:
278+ en: Guess the Number
279+ sv: Gissa talet
280+
281+ # Override standard limits: say that the TLE solutions provided should
282+ # be at least 4 times above the time limit in order for us to be
283+ # happy.
284+ limits:
285+ time_multipliers:
286+ time_limit_to_tle: 4
287+ YAML ;
288+ $ messages = [];
289+ $ validationMode = 'xxx ' ;
290+ $ problem = new Problem ();
291+
292+ $ ret = ImportProblemService::parseYaml ($ yaml , $ messages , $ validationMode , PropertyAccess::createPropertyAccessor (), $ problem );
293+ $ this ->assertTrue ($ ret );
294+ $ this ->assertEmpty ($ messages );
295+ $ this ->assertEquals ('Guess the Number ' , $ problem ->getName ());
296+ $ this ->assertEquals ('pass-fail, interactive ' , $ problem ->getTypesAsString ());
297+ $ this ->assertEquals ('default ' , $ validationMode );
298+ $ this ->assertEquals (0 , $ problem ->getTimelimit ());
299+ $ this ->assertEquals (null , $ problem ->getMemlimit ());
300+ $ this ->assertEquals (null , $ problem ->getOutputlimit ());
301+ }
251302}
0 commit comments