package Ġorg . fl ax o . rest . manager . statistics Ċ Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . jetbrains . spe k . api . dsl . describe Ċ import Ġorg . jetbrains . spe k . api . dsl . it Ċ import Ġorg . jetbrains . spe k . api . dsl . on Ċ import Ġorg . jetbrains . spe k . subject . Subject Spe k Ċ Ċ object ĠCsv Statistics Manager Spec Ġ: ĠSubject Spe k < Csv Statistics Manager >({ ĊĠĠĠ Ġsubject Ġ{ ĠCsv Statistics Manager () Ġ} ĊĊĠĠĠ Ġ// Ġstands Ġfor Ġdelimiter ĊĠĠĠ Ġval Ġd Ġ= Ġsubject . delimiter ĊĊĠĠĠ Ġdescribe (" statistics Ġmanager ") Ġ{ ĊĊĠĠĠĠĠĠĠ Ġon (" pass ing Ġempty Ġstatistics ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatistics : ĠStatistics Ġ= Ġempty Map () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġempty Ġtable ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . convert ( statistics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. should Equal (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent ${ d } score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . collapse ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" pass ing Ġempty Ġtasks Ġstatistics ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatistics : ĠStatistics Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" task - 1 " Ġto Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" task - 2 " Ġto Ġempty Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġempty Ġtable Ġwith Ġonly Ġheader ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . convert ( statistics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. should Equal (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent ${ d } task - 1 ${ d } task - 2 ${ d } score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . collapse ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" pass ing Ġsingle Ġtasks Ġstatistics ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatistics : ĠStatistics Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" task - 1 " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" student - 1 " Ġto Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" student - 2 " Ġto Ġ 2 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġtable Ġwith Ġall Ġstudent Ġrecords Ġwith Ġtheir Ġtask Ġscores Ġand Ġequal Ġsummary Ġscore ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . convert ( statistics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. should Equal (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent ${ d } task - 1 ${ d } score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent - 1 ${ d } 1 0 ${ d } 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent - 2 ${ d } 2 0 ${ d } 2 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . collapse ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" pass ing Ġseveral Ġtasks Ġstatistics ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatistics : ĠStatistics Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" task - 1 " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" student - 1 " Ġto Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" student - 2 " Ġto Ġ 4 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" task - 2 " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" student - 1 " Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" student - 2 " Ġto Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġtable Ġwith Ġall Ġstudent Ġrecords Ġwith Ġtheir Ġtask Ġscores Ġand Ġaverage Ġsummary Ġscore ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . convert ( statistics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. should Equal (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent ${ d } task - 1 ${ d } task - 2 ${ d } score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent - 1 ${ d } 1 0 ${ d } 3 0 ${ d } 2 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent - 2 ${ d } 4 0 ${ d } 6 0 ${ d } 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . collapse ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ Ċ private Ġfun ĠString . collapse (): ĠString Ġ= Ġreplace (" Ġ", Ġ""). replace First ("\ n ", Ġ"") Ċ