This is an automated email from the git hooks/post-receive script. plessy pushed a commit to branch debian/unstable in repository libgtextutils.
commit 496eb071b7a87bfa6e519516f70568181ef936c8 Author: A. Gordon <[email protected]> Date: Tue Mar 24 20:36:04 2009 -0400 Added test suite and bumped version to 0.2. --- Makefile.am | 4 +- configure.ac | 5 +- gtextutils-0.1.pc.in => gtextutils-0.2.pc.in | 4 +- Makefile.am => tests/Makefile.am | 15 +++-- tests/test_container_join.cpp | 75 ++++++++++++++++++++++ .../print_utils.h => tests/test_natural_sort.cpp | 56 +++++++++------- 6 files changed, 127 insertions(+), 32 deletions(-) diff --git a/Makefile.am b/Makefile.am index 41047b2..6e40be1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,7 +9,7 @@ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. EXTRA_DIST = reconf configure -SUBDIRS = m4 src doc +SUBDIRS = m4 src doc tests pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = gtextutils-0.1.pc +pkgconfig_DATA = gtextutils-0.2.pc diff --git a/configure.ac b/configure.ac index 9b5cedb..d0ad004 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. AC_INIT([Gordon-Text_utils-Library], - [0.1], + [0.2], [A. Gordon [email protected]], [libgtextutils]) AC_CONFIG_AUX_DIR(config) @@ -67,7 +67,8 @@ AC_CONFIG_FILES([ m4/Makefile src/Makefile src/gtextutils/Makefile - gtextutils-0.1.pc + gtextutils-0.2.pc + tests/Makefile ]) AC_OUTPUT diff --git a/gtextutils-0.1.pc.in b/gtextutils-0.2.pc.in similarity index 68% rename from gtextutils-0.1.pc.in rename to gtextutils-0.2.pc.in index 59f2579..eceed2b 100644 --- a/gtextutils-0.1.pc.in +++ b/gtextutils-0.2.pc.in @@ -6,5 +6,5 @@ includedir=@includedir@ Name: gtextutils Description: Gordon's text-utility classes Version: @VERSION@ -Libs: -L${libdir} -lgtextutils-0.1 -Cflags: -I${includedir}/gtextutils-0.1 +Libs: -L${libdir} -lgtextutils-0.2 +Cflags: -I${includedir}/gtextutils-0.2 diff --git a/Makefile.am b/tests/Makefile.am similarity index 62% copy from Makefile.am copy to tests/Makefile.am index 41047b2..61876a5 100644 --- a/Makefile.am +++ b/tests/Makefile.am @@ -8,8 +8,15 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -EXTRA_DIST = reconf configure -SUBDIRS = m4 src doc -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = gtextutils-0.1.pc + +check_PROGRAMS = test_container_join \ + test_natural_sort + +TESTS = $(check_PROGRAMS) + +LDADD = $(top_srcdir)/src/gtextutils/libgtextutils-$(VERSION).a +INCLUDES = -I$(top_srcdir)/src + +test_container_join_SOURCES = test_container_join.cpp +test_natural_sort_SOURCES = test_natural_sort.cpp diff --git a/tests/test_container_join.cpp b/tests/test_container_join.cpp new file mode 100644 index 0000000..b413326 --- /dev/null +++ b/tests/test_container_join.cpp @@ -0,0 +1,75 @@ +/* + Gordon's Text-Utilities Library + Copyright (C) 2009 Assaf Gordon ([email protected]) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/> +*/ +#include <vector> +#include <map> +#include <string> +#include <iostream> + +#include <gtextutils/container_join.h> + +/* + * Tiny test suite for container-join templates + */ + +using namespace std; + +int main() +{ + vector<int> v; + for (int i=0;i<10;++i) + v.push_back(i); + + // Print the entire container: + cout << join(v,",") << endl; + // Will output: 0,1,2,3,4,5,6,7,8,9 + + // Print specific range, using begin/end iterators + cout << join(v.begin(), v.end(),"-") << endl; + // Will output: 0-1-2-3-4-5-6-7-8-9 + + // An std::pair<> based container + // map/set/multimap/multiset/unorederd_map etc. + // or + // vector< pair<A,B> > etc. + map<int, string> m; + m[42] = "Don't Panic"; + m[666]= "Beast" ; + + // Print the first values (of the pair) of the entire container: + cout << "keys = " << join_firsts(m) << endl; + // Will output: 42 <tab> 666 + + // Print the first values (of the pair) of a specific range: + cout << "keys = " << join_firsts(m.begin(), m.end(), ",") << endl; + // Will output: 42,666 + + // Print the second values (of the pair) of the entire container: + cout << "values= " << join_seconds(m) << endl; + // Will output: Don't Panic<tab>Beast + + // Print the second values (of the pair) of a specific range: + cout << "values= " << join_seconds(m.begin(), m.end(), ",") << endl; + // Will output: Don't Panic,Beast + + + // Store result in a string (instead of an output stream): + string s = join_firsts(m); + // 's' will contain: "42\t666"; + + return 0; +} diff --git a/src/gtextutils/print_utils.h b/tests/test_natural_sort.cpp similarity index 51% rename from src/gtextutils/print_utils.h rename to tests/test_natural_sort.cpp index 7a041fd..99af61b 100644 --- a/src/gtextutils/print_utils.h +++ b/tests/test_natural_sort.cpp @@ -15,33 +15,45 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/> */ -#ifndef __PRINT_UTILS_H__ -#define __PRINT_UTILS_H__ - +#include <vector> #include <string> -#include <sstream> +#include <iostream> + +#include <gtextutils/container_join.h> + +#include <gtextutils/natsort.h> + +/* + * Tiny test suite for natural sort + */ + +using namespace std; -template<class COLLECTION> -inline -std::string -join_collection(const COLLECTION &col, const std::string& delimiter="\t") +int main() { - std::ostringstream os; - bool first = true ; + vector<string> v; - typename COLLECTION::const_iterator it = col.begin(); + v.push_back("chr4"); + v.push_back("chr2"); + v.push_back("chr10"); + v.push_back("chr11"); + v.push_back("chr1"); + v.push_back("chrX"); + v.push_back("chr20"); + v.push_back("ChR13"); - while ( it != col.end() ) { - if ( first ) - first = false; - else - os << delimiter ; - os << *it ; - it++ ; - } + sort(v.begin(), v.end()); - return os.str(); -} + cout << "Regular sort: " << join(v) << endl; + + sort(v.begin(), v.end(), natural_sort_predicate() ); + cout << "Natural sort (case sensitive): " << join(v) << endl; + + sort(v.begin(), v.end(), natural_sort_ignore_case_predicate() ); + cout << "Natural sort (case-insensitive): " << join(v) << endl; -#endif + + + return 0; +} -- Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/libgtextutils.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
