111 lines
3.4 KiB
C++
111 lines
3.4 KiB
C++
/**
|
|
* @file stringize_test.cpp
|
|
* @author Nat Goodspeed
|
|
* @date 2008-09-12
|
|
* @brief Test of stringize.h
|
|
*
|
|
* $LicenseInfo:firstyear=2008&license=viewergpl$
|
|
*
|
|
* Copyright (c) 2008-2009, Linden Research, Inc.
|
|
*
|
|
* Second Life Viewer Source Code
|
|
* The source code in this file ("Source Code") is provided by Linden Lab
|
|
* to you under the terms of the GNU General Public License, version 2.0
|
|
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
*
|
|
* There are special exceptions to the terms and conditions of the GPL as
|
|
* it is applied to this Source Code. View the full text of the exception
|
|
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
|
* online at
|
|
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
*
|
|
* By copying, modifying or distributing this software, you acknowledge
|
|
* that you have read and understood your obligations described above,
|
|
* and agree to abide by those obligations.
|
|
*
|
|
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
|
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
|
* COMPLETENESS OR PERFORMANCE.
|
|
* $/LicenseInfo$
|
|
*/
|
|
|
|
/*==========================================================================*|
|
|
#if LL_WINDOWS
|
|
#pragma warning (disable : 4675) // "resolved by ADL" -- just as I want!
|
|
#endif
|
|
|*==========================================================================*/
|
|
|
|
// STL headers
|
|
#include <iomanip>
|
|
|
|
// Precompiled header
|
|
#include "linden_common.h"
|
|
|
|
// associated header
|
|
#include "../stringize.h"
|
|
|
|
// std headers
|
|
// external library headers
|
|
// other Linden headers
|
|
#include "../llsd.h"
|
|
|
|
#include "../test/lltut.h"
|
|
|
|
namespace tut
|
|
{
|
|
struct stringize_data
|
|
{
|
|
stringize_data():
|
|
c('c'),
|
|
s(17),
|
|
i(34),
|
|
l(68),
|
|
f(3.14159265358979f),
|
|
d(3.14159265358979),
|
|
// Including a space differentiates this from
|
|
// boost::lexical_cast<std::string>, which doesn't handle embedded
|
|
// spaces so well.
|
|
abc("abc def")
|
|
{
|
|
llsd["i"] = i;
|
|
llsd["d"] = d;
|
|
llsd["abc"] = abc;
|
|
}
|
|
|
|
char c;
|
|
short s;
|
|
int i;
|
|
long l;
|
|
float f;
|
|
double d;
|
|
std::string abc;
|
|
LLSD llsd;
|
|
};
|
|
typedef test_group<stringize_data> stringize_group;
|
|
typedef stringize_group::object stringize_object;
|
|
tut::stringize_group strzgrp("stringize_h");
|
|
|
|
template<> template<>
|
|
void stringize_object::test<1>()
|
|
{
|
|
ensure_equals(stringize(c), "c");
|
|
ensure_equals(stringize(s), "17");
|
|
ensure_equals(stringize(i), "34");
|
|
ensure_equals(stringize(l), "68");
|
|
ensure_equals(stringize(f), "3.14159");
|
|
ensure_equals(stringize(d), "3.14159");
|
|
ensure_equals(stringize(abc), "abc def");
|
|
ensure_equals(stringize(llsd), "{'abc':'abc def','d':r3.14159,'i':i34}");
|
|
}
|
|
|
|
template<> template<>
|
|
void stringize_object::test<2>()
|
|
{
|
|
ensure_equals(STRINGIZE("c is " << c), "c is c");
|
|
ensure_equals(STRINGIZE(std::setprecision(4) << d), "3.142");
|
|
}
|
|
} // namespace tut
|