~ubuntu-branches/ubuntu/wily/openms/wily

« back to all changes in this revision

Viewing changes to source/TEST/String_test.C

  • Committer: Package Import Robot
  • Author(s): Filippo Rusconi
  • Date: 2013-12-20 11:30:16 UTC
  • mfrom: (5.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20131220113016-wre5g9bteeheq6he
Tags: 1.11.1-3
* remove version number from libbost development package names;
* ensure that AUTHORS is correctly shipped in all packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// -*- mode: C++; tab-width: 2; -*-
2
 
// vi: set ts=2:
3
 
//
4
 
// --------------------------------------------------------------------------
5
 
//                   OpenMS Mass Spectrometry Framework
6
 
// --------------------------------------------------------------------------
7
 
//  Copyright (C) 2003-2011 -- Oliver Kohlbacher, Knut Reinert
8
 
//
9
 
//  This library is free software; you can redistribute it and/or
10
 
//  modify it under the terms of the GNU Lesser General Public
11
 
//  License as published by the Free Software Foundation; either
12
 
//  version 2.1 of the License, or (at your option) any later version.
13
 
//
14
 
//  This library is distributed in the hope that it will be useful,
15
 
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 
//  Lesser General Public License for more details.
18
 
//
19
 
//  You should have received a copy of the GNU Lesser General Public
20
 
//  License along with this library; if not, write to the Free Software
21
 
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22
 
//
 
1
// --------------------------------------------------------------------------
 
2
//                   OpenMS -- Open-Source Mass Spectrometry               
 
3
// --------------------------------------------------------------------------
 
4
// Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
 
5
// ETH Zurich, and Freie Universitaet Berlin 2002-2013.
 
6
// 
 
7
// This software is released under a three-clause BSD license:
 
8
//  * Redistributions of source code must retain the above copyright
 
9
//    notice, this list of conditions and the following disclaimer.
 
10
//  * Redistributions in binary form must reproduce the above copyright
 
11
//    notice, this list of conditions and the following disclaimer in the
 
12
//    documentation and/or other materials provided with the distribution.
 
13
//  * Neither the name of any author or any participating institution 
 
14
//    may be used to endorse or promote products derived from this software 
 
15
//    without specific prior written permission.
 
16
// For a full list of authors, refer to the file AUTHORS. 
 
17
// --------------------------------------------------------------------------
 
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 
19
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
20
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
21
// ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING 
 
22
// INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
 
23
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
 
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
 
25
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 
26
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 
27
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
 
28
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
// 
23
30
// --------------------------------------------------------------------------
24
31
// $Maintainer: Stephan Aiche$
25
32
// $Authors: Marc Sturm $
37
44
 
38
45
#include <QtCore/QString>
39
46
 
 
47
#include <boost/math/special_functions/fpclassify.hpp>
 
48
 
40
49
using namespace OpenMS;
41
50
using namespace std;
42
51
 
43
52
///////////////////////////
44
53
 
45
 
START_TEST(String, "$Id: String_test.C 8215 2011-03-29 14:18:26Z aiche $")
 
54
START_TEST(String, "$Id: String_test.C 11208 2013-05-15 12:01:21Z aiche $")
46
55
 
47
56
/////////////////////////////////////////////////////////////
48
57
 
432
441
        TEST_EQUAL(s.toInt(),73629);
433
442
        s = "73629.99";
434
443
        TEST_EQUAL(s.toInt(),73629);
 
444
  s = "not an int";
 
445
  TEST_EXCEPTION_WITH_MESSAGE(Exception::ConversionError, s.toInt(), String("Could not convert string '") + s + "' to an integer value")    
435
446
END_SECTION
436
447
 
437
448
START_SECTION((Real toFloat() const))
446
457
        TEST_EQUAL(String(s.toFloat()),"73629.9");
447
458
        s = "47218.8";
448
459
        TEST_EQUAL(String(s.toFloat()),"47218.8");
 
460
  s = "nan";
 
461
  TEST_EQUAL(boost::math::isnan(s.toFloat()),true);  
 
462
  s = "NaN";
 
463
  TEST_EQUAL(boost::math::isnan(s.toFloat()),true);
 
464
  s = "not a number";
 
465
  TEST_EXCEPTION_WITH_MESSAGE(Exception::ConversionError, s.toFloat(), String("Could not convert string '") + s + "' to a float value")  
449
466
END_SECTION
450
467
 
451
468
START_SECTION((DoubleReal toDouble() const))
460
477
        TEST_EQUAL(String(s.toDouble()),"73629.980123");
461
478
        s = "47218.890000001";
462
479
        TEST_EQUAL(String(s.toDouble()),"47218.890000001");
 
480
  s = "nan";
 
481
  TEST_EQUAL(boost::math::isnan(s.toDouble()),true);  
 
482
  s = "NaN";
 
483
  TEST_EQUAL(boost::math::isnan(s.toDouble()),true);    
 
484
  s = "not a number";
 
485
  TEST_EXCEPTION_WITH_MESSAGE(Exception::ConversionError, s.toDouble(), String("Could not convert string '") + s + "' to a double value")
463
486
END_SECTION
464
487
 
465
488
START_SECTION((static String random(UInt length)))