// 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/variant.h" #include "bu/membuf.h" #include "bu/formatter.h" #include "bu/string.h" #include "bu/sio.h" using namespace Bu; Bu::String mkastring() { Bu::String a = "s"; a += "tu"; a += "f"; a += "f"; return a; } suite Variant { test construction { Bu::Variant v( 55 ); v.get(); Bu::Variant v2( v ); v2.get(); } test formatting { Bu::Variant v("hello"); Bu::MemBuf mb; Bu::Formatter f( mb ); f << v; unitTest( mb.getString() == v.get() ); } test stringForamtting { Bu::String s1; s1 = "hello"; int32_t i1, i2; i1 = 32; i2 = 0; Bu::String out = Bu::String("%1-%2-%3-%4.odp"). arg( s1.getStr() ). arg( mkastring().getStr() ). arg( i1, Fmt(2).fill('0') ). arg( i2, Fmt(2).fill('0') ); // sio << sio.nl << out << sio.nl; unitTest( out == "hello-stuff-32-00.odp" ); int64_t iBig = 159173777LL; out = Bu::String("%1").arg( iBig ); unitTest( out == "159173777" ); } }