// vim: syntax=cpp /* * Copyright (C) 2007-2019 Xagasoft, All rights reserved. * * This file is part of the libbu++ library and is released under the * terms of the license contained in the file LICENSE. */ #include "bu/blob.h" #include "bu/exceptionindexoutofbounds.h" #include "bu/sio.h" #include suite Blob { test set { Bu::Blob a("hello there"); unitTest( !strcmp( a.getData(), "hello there") ); Bu::Blob b( a ); a = "New string"; unitTest( !strcmp( a.getData(), "New string") ); unitTest( !strcmp( b.getData(), "hello there") ); b = a; unitTest( !strcmp( b.getData(), "New string") ); } test index { Bu::Blob a("hello there"); unitTest( a[5] == ' ' ); unitTest( a[6] == 't' ); unitTestCatch( a[-1], Bu::ExceptionIndexOutOfBounds ); unitTestCatch( a[-100], Bu::ExceptionIndexOutOfBounds ); unitTest( a[10] == 'e' ); unitTestCatch( a[11], Bu::ExceptionIndexOutOfBounds ); unitTestCatch( a[12], Bu::ExceptionIndexOutOfBounds ); } test compare { Bu::Blob a("cat"), b("dog"), c("cattail"), d("dog"); unitTest( a != b ); unitTest( a != c ); unitTest( a != "catt" ); unitTest( a != "ca" ); unitTest( !(a == c) ); unitTest( !(a == d) ); unitTest( a == a ); unitTest( !(a != a) ); unitTest( !(b != d) ); unitTest( a < b ); unitTest( a <= b ); unitTest( a < c ); unitTest( a <= c ); unitTest( !(b < d) ); unitTest( b <= d ); unitTest( !(c < a) ); unitTest( a < "dog" ); unitTest( a <= "dog" ); unitTest( a < "cattail" ); unitTest( a <= "cattail" ); unitTest( !(b < "dog") ); unitTest( b <= "dog" ); unitTest( !(c < "cattail") ); unitTest( b > a ); unitTest( b >= a ); unitTest( c > a ); unitTest( c >= a ); unitTest( !(d > b) ); unitTest( d <= b ); unitTest( !(a > c) ); unitTest( b > "cat" ); unitTest( b >= "cat" ); unitTest( c > "cat" ); unitTest( c >= "cat" ); unitTest( !(d > "dog") ); unitTest( d <= "dog" ); unitTest( !(a > "cattail") ); } test iterator { } test const_iterator { } test sort { Bu::List lList; lList.append("Moose"); lList.append("Cattail"); lList.append("Cat"); lList.append("Cattxil"); lList.append("Moo"); lList.append("Cattails"); lList.append("Dog"); lList.sort(); Bu::List::iterator i = lList.begin(); unitTest( *i == "Cat" && i++ ); unitTest( *i == "Cattail" && i++ ); unitTest( *i == "Cattails" && i++ ); unitTest( *i == "Cattxil" && i++ ); unitTest( *i == "Dog" && i++ ); unitTest( *i == "Moo" && i++ ); unitTest( *i == "Moose" && !(i++) ); } }