@@ -19,7 +19,7 @@ use DateTime::Format::Strptime;
1919use Test::More;
2020use Clone qw/ clone/ ;
2121use Test::Exception;
22- use List::MoreUtils qw/ firstval / ;
22+
2323use YAML::XS qw/ LoadFile/ ;
2424use Mojo::JSON qw/ true false/ ;
2525
@@ -99,10 +99,8 @@ my @all_user_sets = loadCSV(
9999for my $set (@all_user_sets ) {
100100 $set -> {set_version } = 0 unless defined ($set -> {set_version });
101101 # find the problem set type
102- my $s = firstval {
103- $_ -> {course_name } eq $set -> {course_name } && $_ -> {set_name } eq $set -> {set_name }
104- }
105- @all_problem_sets ;
102+ my $s =
103+ (grep { $_ -> {course_name } eq $set -> {course_name } && $_ -> {set_name } eq $set -> {set_name } } @all_problem_sets )[0];
106104 $set -> {set_params } = {} unless defined $set -> {set_params };
107105 $set -> {set_type } = $s -> {set_type };
108106}
@@ -112,10 +110,8 @@ my @merged_user_sets = @{ clone(\@all_user_sets) };
112110# Merge the sets
113111
114112for my $user_set (@merged_user_sets ) {
115- my $set = firstval {
116- $_ -> {course_name } eq $user_set -> {course_name } && $_ -> {set_name } eq $user_set -> {set_name }
117- }
118- @all_problem_sets ;
113+ my $set = (grep { $_ -> {course_name } eq $user_set -> {course_name } && $_ -> {set_name } eq $user_set -> {set_name } }
114+ @all_problem_sets )[0];
119115
120116 # override problem set dates with userset dates if exist
121117 my $dates = clone($set -> {set_dates });
@@ -263,26 +259,36 @@ my $info = {
263259};
264260my $user_set = $user_set_rs -> getUserSet(info => $info );
265261
266- my $user_set_from_csv = clone firstval {
267- $_ -> {course_name } eq ' Precalculus'
268- && $_ -> {username } eq $info -> {username }
269- && $_ -> {set_name } eq $info -> {set_name }
270- }
271- @all_user_sets ;
262+ my $user_set_from_csv = clone(
263+ (
264+ grep {
265+ $_ -> {course_name } eq ' Precalculus'
266+ && $_ -> {username } eq $info -> {username }
267+ && $_ -> {set_name } eq $info -> {set_name }
268+ } @all_user_sets
269+ )[0]
270+ );
272271
273272removeIDs($user_set );
274273delete $user_set -> {set_visible } unless defined ($user_set -> {set_visible });
275274
275+ use Data::Dumper;
276+ print Dumper $user_set_from_csv ;
277+ print Dumper $user_set ;
278+
276279is_deeply($user_set_from_csv , $user_set , ' getUserSet: get a user set from a course' );
277280
278281# Get a merged UserSet
279282
280- my $merged_set_from_csv = clone firstval {
281- $_ -> {course_name } eq ' Precalculus'
282- && $_ -> {username } eq $info -> {username }
283- && $_ -> {set_name } eq $info -> {set_name }
284- }
285- @merged_user_sets ;
283+ my $merged_set_from_csv = clone(
284+ (
285+ grep {
286+ $_ -> {course_name } eq ' Precalculus'
287+ && $_ -> {username } eq $info -> {username }
288+ && $_ -> {set_name } eq $info -> {set_name }
289+ } @merged_user_sets
290+ )[0]
291+ );
286292
287293my $merged_set = $user_set_rs -> getUserSet(info => $info , merged => 1);
288294removeIDs($merged_set );
@@ -356,11 +362,7 @@ $new_info->{set_type} = 'HW';
356362
357363is_deeply($new_user_set , $new_info , ' addUserSet: add a new user set' );
358364
359- my $hw_set1 = clone firstval {
360- $_ -> {course_name } eq ' Precalculus'
361- && $_ -> {set_name } eq ' HW #1'
362- }
363- @hw_sets ;
365+ my $hw_set1 = clone((grep { $_ -> {course_name } eq ' Precalculus' && $_ -> {set_name } eq ' HW #1' } @hw_sets )[0]);
364366
365367$hw_set1 -> {username } = ' frink' ;
366368
@@ -619,11 +621,20 @@ my $otto_quiz_info = {
619621 username => ' otto'
620622};
621623
622- my $merged_set1 = clone firstval {
623- $_ -> {course_name } eq $otto_quiz_info -> {course_name }
624- && $_ -> {set_name } eq $otto_quiz_info -> {set_name }
624+ for my $u (@otto_user_sets ) {
625+ $u -> delete ;
625626}
626- @all_problem_sets ;
627+
628+ # Then add a new user set and test that it is merged correctly.
629+
630+ my $merged_set1 = clone(
631+ (
632+ grep {
633+ $_ -> {course_name } eq $otto_set_info2 -> {course_name }
634+ && $_ -> {set_name } eq $otto_set_info2 -> {set_name }
635+ } @all_problem_sets
636+ )[0]
637+ );
627638
628639$merged_set1 -> {username } = $otto_quiz_info -> {username };
629640
0 commit comments