[libcatmandu-perl] 31/101: Fixed array_to_sentence bug

Jonas Smedegaard dr at jones.dk
Tue Feb 23 13:43:51 UTC 2016


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository libcatmandu-perl.

commit 51babb5add8848a16c3ee8058b891563a67f894e
Author: Patrick Hochstenbach <patrick.hochstenbach at ugent.be>
Date:   Fri Dec 11 16:49:48 2015 +0100

    Fixed array_to_sentence bug
---
 lib/Catmandu/Util.pm |  2 +-
 t/Catmandu-Util.t    | 29 ++++++++++++++++++++++++++++-
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/lib/Catmandu/Util.pm b/lib/Catmandu/Util.pm
index 75cd1a0..75fd3c3 100644
--- a/lib/Catmandu/Util.pm
+++ b/lib/Catmandu/Util.pm
@@ -308,7 +308,7 @@ sub array_to_sentence {
     $join_last //= ' and ';
     my $size = scalar @$arr;
     $size > 2
-        ? join($join_last, join($join, @$arr[0..$size-1]), $arr->[-1])
+        ? join($join_last, join($join, @$arr[0..$size-2]), $arr->[-1])
         : join($join_last, @$arr);
 }
 
diff --git a/t/Catmandu-Util.t b/t/Catmandu-Util.t
index 6924915..78e3b91 100644
--- a/t/Catmandu-Util.t
+++ b/t/Catmandu-Util.t
@@ -383,14 +383,41 @@ is Catmandu::Util::array_sum([1,2,3,4,5,6,7,8,9,10]) , 55 , 'array_sum';
 
 ok Catmandu::Util::array_includes([{ foo => [ { bar => 1}]}] ,  {foo => [ { bar => 1}]} ) , 'array_includes';
 
+ok ! Catmandu::Util::array_includes([{ foo => [ { bar => 1}]}] ,  {foo => [ { bar => 5}]} ) , '!array_includes';
+
 ok Catmandu::Util::array_any([0,1,2], sub { return 1 if shift == 2}) , 'array_any';
 
+ok ! Catmandu::Util::array_any([0,1,2], sub { return 1 if shift == 100}) , 'array_any';
+
+is Catmandu::Util::array_to_sentence([1,2]) , '1 and 2' , 'array_to_sentence';
+
+is Catmandu::Util::array_to_sentence([1,2,3]) , '1, 2 and 3' , 'array_to_sentence';
+
 is_deeply Catmandu::Util::array_rest([0,1,2]) , [1,2] , 'array_rest';
 
 is_deeply Catmandu::Util::array_uniq([0,1,2,2,2,2,3,3,2,3]) , [0,1,2,3] , 'array_uniq';
 
+is_deeply Catmandu::Util::hash_merge({ a => { b => 1 } } , { a => { c => 2 } }) , { a => { b => 1 , c => 2 } } , 'hash_merge';
+
+is Catmandu::Util::as_utf8("école") , "école" , 'as_utf8';
+
+is Catmandu::Util::trim("   \r\n     bla    \t\t\t\r\n") , "bla" , 'trim';
+
 is Catmandu::Util::capitalize("école") , "École" , 'capitalize';
 
+ok Catmandu::Util::is_same({ a => [ { b => 1 , c => 1 }]} , { a => [ { c => 1 , b => 1 }]}) , 'is_same';
+
+ok Catmandu::Util::is_different({ a => [ { b => 1 , c => 1 }]} , { a => [ { d => 1 , b => 1 }]}) , 'is_different';
+
+ok Catmandu::Util::check_same({ a => [ { b => 1 , c => 1 }]} , { a => [ { c => 1 , b => 1 }]}) , 'check_same';
+
+throws_ok { Catmandu::Util::check_same({ a => [ { b => 1 , c => 1 }]} , { a => [ { d => 1 , b => 1 }]}) } 'Catmandu::BadVal' , '!check_same';
+
+ok Catmandu::Util::check_different({ a => [ { b => 1 , c => 1 }]} , { a => [ { b => 1 , b => 1 }]}) , 'check_different';
+
+throws_ok { Catmandu::Util::check_different({ a => [ { b => 1 , c => 1 }]} , { a => [ { c => 1 , b => 1 }]}) } 'Catmandu::BadVal' , '!check_different';
+
+
 is Catmandu::Util::human_number(64354) , "64,354" , 'human_number';
 
 is Catmandu::Util::human_byte_size(10) , "10 bytes" , 'human_byte_size';
@@ -404,4 +431,4 @@ is Catmandu::Util::xml_declaration() , qq(<?xml version="1.0" encoding="UTF-8"?>
 
 is Catmandu::Util::xml_escape("<>'&") , '<>'&' , 'xml_escape';
 
-done_testing 534;
\ No newline at end of file
+done_testing 547;
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libcatmandu-perl.git



More information about the Pkg-perl-cvs-commits mailing list