13 #include <OpenMS/OpenMSConfig.h>
14 #include <OpenMS/config.h>
60 tolerance_(tolerance),
72 return std::fabs(value - target_) < tolerance_;
93 static std::vector<T>
create(
const String& str,
const char splitter =
',')
96 std::vector<String> temp_string_vec;
97 str.
split(splitter, temp_string_vec);
98 return create<T>(temp_string_vec);
109 template <
typename T>
110 static std::vector<T> create(
const std::vector<String>& s);
119 template <
typename T>
123 out.reserve(s.size());
124 for (
const auto& elem : s) out.push_back(elem);
136 template <
typename T,
typename E>
137 static bool contains(
const std::vector<T>& container,
const E& elem)
139 return find(container.begin(), container.end(), elem) != container.end();
151 static bool contains(
const std::vector<double>& container,
const double& elem,
double tolerance = 0.00001)
157 enum class CASE { SENSITIVE, INSENSITIVE};
169 if (case_sensitive == CASE::SENSITIVE)
return contains(container, elem);
172 return find_if(container.begin(), container.end(), [&elem](
String ce) {
173 return elem == ce.toLower();
174 }) != container.end();
183 template <
typename T>
186 return concatenate< std::vector<T> >(container, glue);
195 template <
typename T>
199 if (container.empty())
return "";
201 typename T::const_iterator it = container.begin();
206 for (; it != container.end(); ++it)
208 ret += (glue +
String(*it));
217 template <
typename T,
typename E>
220 typename std::vector<T>::const_iterator pos =
221 std::find(container.begin(), container.end(), elem);
222 if (pos == container.end())
return -1;
224 return static_cast<Int>(std::distance(container.begin(), pos));
231 template <
typename T>
245 inline float convert(
const String& s)
250 inline std::string
convert(
const String& s)
252 return static_cast<std::string
>(s);
256 template <
typename T>
261 for (std::vector<String>::const_iterator it = s.begin(); it != s.end(); ++it)
265 c.push_back(detail::convert<T>(
String(*it).
trim()));
Invalid conversion exception.
Definition: Exception.h:330
Collection of utility functions for management of vectors.
Definition: ListUtils.h:52
static bool contains(const std::vector< double > &container, const double &elem, double tolerance=0.00001)
Checks whether the element elem is contained in the given container of floating point numbers.
Definition: ListUtils.h:151
static bool contains(const std::vector< T > &container, const E &elem)
Checks whether the element elem is contained in the given container.
Definition: ListUtils.h:137
static bool contains(const std::vector< String > &container, String elem, const CASE case_sensitive)
Checks whether the String elem is contained in the given container (potentially case insensitive)
Definition: ListUtils.h:167
static std::vector< String > toStringList(const std::vector< T > &s)
Converts a vector of T's to a vector of Strings.
Definition: ListUtils.h:120
CASE
Definition: ListUtils.h:157
static String concatenate(const std::vector< T > &container, const String &glue="")
Concatenates all elements of the container and puts the glue string between elements.
Definition: ListUtils.h:184
static Int getIndex(const std::vector< T > &container, const E &elem)
Get the index of the first occurrence of an element in the vector (or -1 if not found)
Definition: ListUtils.h:218
static String concatenate(const T &container, const String &glue="")
Concatenates all elements of the container and puts the glue string between elements.
Definition: ListUtils.h:196
static std::vector< T > create(const String &str, const char splitter=',')
Returns a list that is created by splitting the given comma-separated string.
Definition: ListUtils.h:93
A more convenient string class.
Definition: String.h:34
double toDouble() const
Conversion to double.
bool split(const char splitter, std::vector< String > &substrings, bool quote_protect=false) const
Splits a string into substrings using splitter as delimiter.
Int32 toInt32() const
Conversion to Int32.
String & trim()
removes whitespaces (space, tab, line feed, carriage return) at the beginning and the end of the stri...
String & toLower()
Converts the string to lowercase.
int32_t Int32
Signed integer type (32bit)
Definition: Types.h:26
int Int
Signed integer type.
Definition: Types.h:72
std::vector< Int > IntList
Vector of signed integers.
Definition: ListUtils.h:29
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:44
std::vector< double > DoubleList
Vector of double precision real types.
Definition: ListUtils.h:36
const double c
Definition: Constants.h:188
const double E
Euler's number - base of the natural logarithm.
Definition: Constants.h:52
bool contains(T value, T min, T max)
Is a value contained in [min, max] ?
Definition: MathFunctions.h:64
T convert(const String &s)
Definition: ListUtils.h:235
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Predicate to check double equality with a given tolerance.
Definition: ListUtils.h:58
bool operator()(const double &value) const
Returns true if | value - target | < tolerance.
Definition: ListUtils.h:70
double target_
The target value that should be found.
Definition: ListUtils.h:79
double tolerance_
The allowed tolerance.
Definition: ListUtils.h:77
DoubleTolerancePredicate_(const double &target, const double &tolerance)
Definition: ListUtils.h:59