@@ -638,64 +638,90 @@ TEST_CASE("[String] Ends with") {
638638}
639639
640640TEST_CASE (" [String] Splitting" ) {
641- String s = " Mars,Jupiter,Saturn,Uranus" ;
642- const char *slices_l[3 ] = { " Mars" , " Jupiter" , " Saturn,Uranus" };
643- MULTICHECK_SPLIT (s, split, " ," , true , 2 , slices_l, 3 );
644-
645- const char *slices_r[3 ] = { " Mars,Jupiter" , " Saturn" , " Uranus" };
646- MULTICHECK_SPLIT (s, rsplit, " ," , true , 2 , slices_r, 3 );
647-
648- s = " test" ;
649- const char *slices_3[4 ] = { " t" , " e" , " s" , " t" };
650- MULTICHECK_SPLIT (s, split, " " , true , 0 , slices_3, 4 );
651-
652- s = " " ;
653- const char *slices_4[1 ] = { " " };
654- MULTICHECK_SPLIT (s, split, " " , true , 0 , slices_4, 1 );
655- MULTICHECK_SPLIT (s, split, " " , false , 0 , slices_4, 0 );
656-
657- s = " Mars Jupiter Saturn Uranus" ;
658- const char *slices_s[4 ] = { " Mars" , " Jupiter" , " Saturn" , " Uranus" };
659- Vector<String> l = s.split_spaces ();
660- for (int i = 0 ; i < l.size (); i++) {
661- CHECK (l[i] == slices_s[i]);
641+ {
642+ const String s = " Mars,Jupiter,Saturn,Uranus" ;
643+
644+ const char *slices_l[3 ] = { " Mars" , " Jupiter" , " Saturn,Uranus" };
645+ MULTICHECK_SPLIT (s, split, " ," , true , 2 , slices_l, 3 );
646+
647+ const char *slices_r[3 ] = { " Mars,Jupiter" , " Saturn" , " Uranus" };
648+ MULTICHECK_SPLIT (s, rsplit, " ," , true , 2 , slices_r, 3 );
662649 }
663650
664- s = " 1.2;2.3 4.5" ;
665- const double slices_d[3 ] = { 1.2 , 2.3 , 4.5 };
651+ {
652+ const String s = " test" ;
653+ const char *slices[4 ] = { " t" , " e" , " s" , " t" };
654+ MULTICHECK_SPLIT (s, split, " " , true , 0 , slices, 4 );
655+ }
666656
667- Vector< double > d_arr;
668- d_arr = s. split_floats ( " ; " ) ;
669- CHECK (d_arr. size () == 2 ) ;
670- for ( int i = 0 ; i < d_arr. size (); i++) {
671- CHECK ( ABS (d_arr[i] - slices_d[i]) <= 0.00001 );
657+ {
658+ const String s = " " ;
659+ const char *slices[ 1 ] = { " " } ;
660+ MULTICHECK_SPLIT (s, split, " " , true , 0 , slices, 1 );
661+ MULTICHECK_SPLIT (s, split, " " , false , 0 , slices, 0 );
672662 }
673663
674- Vector<String> keys;
675- keys.push_back (" ;" );
676- keys.push_back (" " );
677-
678- Vector<float > f_arr;
679- f_arr = s.split_floats_mk (keys);
680- CHECK (f_arr.size () == 3 );
681- for (int i = 0 ; i < f_arr.size (); i++) {
682- CHECK (ABS (f_arr[i] - slices_d[i]) <= 0.00001 );
664+ {
665+ const String s = " Mars Jupiter Saturn Uranus" ;
666+ const char *slices[4 ] = { " Mars" , " Jupiter" , " Saturn" , " Uranus" };
667+ Vector<String> l = s.split_spaces ();
668+ for (int i = 0 ; i < l.size (); i++) {
669+ CHECK (l[i] == slices[i]);
670+ }
683671 }
684672
685- s = " 1;2 4" ;
686- const int slices_i[3 ] = { 1 , 2 , 4 };
673+ {
674+ const String s = " 1.2;2.3 4.5" ;
675+ const double slices[3 ] = { 1.2 , 2.3 , 4.5 };
676+
677+ const Vector<double > d_arr = s.split_floats (" ;" );
678+ CHECK (d_arr.size () == 2 );
679+ for (int i = 0 ; i < d_arr.size (); i++) {
680+ CHECK (ABS (d_arr[i] - slices[i]) <= 0.00001 );
681+ }
687682
688- Vector<int > ii;
689- ii = s.split_ints (" ;" );
690- CHECK (ii.size () == 2 );
691- for (int i = 0 ; i < ii.size (); i++) {
692- CHECK (ii[i] == slices_i[i]);
683+ const Vector<String> keys = { " ;" , " " };
684+ const Vector<float > f_arr = s.split_floats_mk (keys);
685+ CHECK (f_arr.size () == 3 );
686+ for (int i = 0 ; i < f_arr.size (); i++) {
687+ CHECK (ABS (f_arr[i] - slices[i]) <= 0.00001 );
688+ }
693689 }
694690
695- ii = s.split_ints_mk (keys);
696- CHECK (ii.size () == 3 );
697- for (int i = 0 ; i < ii.size (); i++) {
698- CHECK (ii[i] == slices_i[i]);
691+ {
692+ const String s = " -2.0 5" ;
693+ const double slices[10 ] = { 0 , -2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 };
694+
695+ const Vector<double > arr = s.split_floats (" " );
696+ CHECK (arr.size () == 10 );
697+ for (int i = 0 ; i < arr.size (); i++) {
698+ CHECK (ABS (arr[i] - slices[i]) <= 0.00001 );
699+ }
700+
701+ const Vector<String> keys = { " ;" , " " };
702+ const Vector<float > mk = s.split_floats_mk (keys);
703+ CHECK (mk.size () == 10 );
704+ for (int i = 0 ; i < mk.size (); i++) {
705+ CHECK (mk[i] == slices[i]);
706+ }
707+ }
708+
709+ {
710+ const String s = " 1;2 4" ;
711+ const int slices[3 ] = { 1 , 2 , 4 };
712+
713+ const Vector<int > arr = s.split_ints (" ;" );
714+ CHECK (arr.size () == 2 );
715+ for (int i = 0 ; i < arr.size (); i++) {
716+ CHECK (arr[i] == slices[i]);
717+ }
718+
719+ const Vector<String> keys = { " ;" , " " };
720+ const Vector<int > mk = s.split_ints_mk (keys);
721+ CHECK (mk.size () == 3 );
722+ for (int i = 0 ; i < mk.size (); i++) {
723+ CHECK (mk[i] == slices[i]);
724+ }
699725 }
700726}
701727
0 commit comments