@@ -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,12 +259,15 @@ 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 });
@@ -277,12 +276,15 @@ is_deeply($user_set_from_csv, $user_set, 'getUserSet: get a user set from a cour
277276
278277# Get a merged UserSet
279278
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 ;
279+ my $merged_set_from_csv = clone(
280+ (
281+ grep {
282+ $_ -> {course_name } eq ' Precalculus'
283+ && $_ -> {username } eq $info -> {username }
284+ && $_ -> {set_name } eq $info -> {set_name }
285+ } @merged_user_sets
286+ )[0]
287+ );
286288
287289my $merged_set = $user_set_rs -> getUserSet(info => $info , merged => 1);
288290removeIDs($merged_set );
@@ -356,11 +358,7 @@ $new_info->{set_type} = 'HW';
356358
357359is_deeply($new_user_set , $new_info , ' addUserSet: add a new user set' );
358360
359- my $hw_set1 = clone firstval {
360- $_ -> {course_name } eq ' Precalculus'
361- && $_ -> {set_name } eq ' HW #1'
362- }
363- @hw_sets ;
361+ my $hw_set1 = clone((grep { $_ -> {course_name } eq ' Precalculus' && $_ -> {set_name } eq ' HW #1' } @hw_sets )[0]);
364362
365363$hw_set1 -> {username } = ' frink' ;
366364
@@ -619,11 +617,16 @@ my $otto_quiz_info = {
619617 username => ' otto'
620618};
621619
622- my $merged_set1 = clone firstval {
623- $_ -> {course_name } eq $otto_quiz_info -> {course_name }
624- && $_ -> {set_name } eq $otto_quiz_info -> {set_name }
625- }
626- @all_problem_sets ;
620+ # Then add a new user set and test that it is merged correctly.
621+
622+ my $merged_set1 = clone(
623+ (
624+ grep {
625+ $_ -> {course_name } eq $otto_quiz_info -> {course_name }
626+ && $_ -> {set_name } eq $otto_quiz_info -> {set_name }
627+ } @all_problem_sets
628+ )[0]
629+ );
627630
628631$merged_set1 -> {username } = $otto_quiz_info -> {username };
629632
0 commit comments