libcxx initial import
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
144
test/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp
Normal file
144
test/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp
Normal file
@@ -0,0 +1,144 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <tuple>
|
||||
|
||||
// template <class... Types> class tuple;
|
||||
|
||||
// template<class... TTypes, class... UTypes>
|
||||
// bool
|
||||
// operator==(const tuple<TTypes...>& t, const tuple<UTypes...>& u);
|
||||
|
||||
#include <tuple>
|
||||
#include <string>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::tuple<> T1;
|
||||
typedef std::tuple<> T2;
|
||||
const T1 t1;
|
||||
const T2 t2;
|
||||
assert(t1 == t2);
|
||||
assert(!(t1 != t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<int> T1;
|
||||
typedef std::tuple<double> T2;
|
||||
const T1 t1(1);
|
||||
const T2 t2(1.1);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<int> T1;
|
||||
typedef std::tuple<double> T2;
|
||||
const T1 t1(1);
|
||||
const T2 t2(1);
|
||||
assert(t1 == t2);
|
||||
assert(!(t1 != t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<int, double> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1, char(2));
|
||||
assert(t1 == t2);
|
||||
assert(!(t1 != t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<int, double> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1, char(3));
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<int, double> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1.1, char(2));
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<int, double> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1.1, char(3));
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 2, 3);
|
||||
assert(t1 == t2);
|
||||
assert(!(t1 != t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1.1, 2, 3);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 3, 3);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 2, 4);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 3, 2);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1.1, 2, 2);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1.1, 3, 3);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1.1, 3, 2);
|
||||
assert(!(t1 == t2));
|
||||
assert(t1 != t2);
|
||||
}
|
||||
}
|
196
test/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp
Normal file
196
test/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp
Normal file
@@ -0,0 +1,196 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <tuple>
|
||||
|
||||
// template <class... Types> class tuple;
|
||||
|
||||
// template<class... TTypes, class... UTypes>
|
||||
// bool
|
||||
// operator<(const tuple<TTypes...>& t, const tuple<UTypes...>& u);
|
||||
//
|
||||
// template<class... TTypes, class... UTypes>
|
||||
// bool
|
||||
// operator>(const tuple<TTypes...>& t, const tuple<UTypes...>& u);
|
||||
//
|
||||
// template<class... TTypes, class... UTypes>
|
||||
// bool
|
||||
// operator<=(const tuple<TTypes...>& t, const tuple<UTypes...>& u);
|
||||
//
|
||||
// template<class... TTypes, class... UTypes>
|
||||
// bool
|
||||
// operator>=(const tuple<TTypes...>& t, const tuple<UTypes...>& u);
|
||||
|
||||
#include <tuple>
|
||||
#include <string>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::tuple<> T1;
|
||||
typedef std::tuple<> T2;
|
||||
const T1 t1;
|
||||
const T2 t2;
|
||||
assert(!(t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char> T1;
|
||||
typedef std::tuple<double> T2;
|
||||
const T1 t1(1);
|
||||
const T2 t2(1);
|
||||
assert(!(t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char> T1;
|
||||
typedef std::tuple<double> T2;
|
||||
const T1 t1(1);
|
||||
const T2 t2(0.9);
|
||||
assert(!(t1 < t2));
|
||||
assert(!(t1 <= t2));
|
||||
assert( (t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char> T1;
|
||||
typedef std::tuple<double> T2;
|
||||
const T1 t1(1);
|
||||
const T2 t2(1.1);
|
||||
assert( (t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert(!(t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1, 2);
|
||||
assert(!(t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(0.9, 2);
|
||||
assert(!(t1 < t2));
|
||||
assert(!(t1 <= t2));
|
||||
assert( (t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1.1, 2);
|
||||
assert( (t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert(!(t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1, 1);
|
||||
assert(!(t1 < t2));
|
||||
assert(!(t1 <= t2));
|
||||
assert( (t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int> T1;
|
||||
typedef std::tuple<double, char> T2;
|
||||
const T1 t1(1, 2);
|
||||
const T2 t2(1, 3);
|
||||
assert( (t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert(!(t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 2, 3);
|
||||
assert(!(t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(0.9, 2, 3);
|
||||
assert(!(t1 < t2));
|
||||
assert(!(t1 <= t2));
|
||||
assert( (t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1.1, 2, 3);
|
||||
assert( (t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert(!(t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 1, 3);
|
||||
assert(!(t1 < t2));
|
||||
assert(!(t1 <= t2));
|
||||
assert( (t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 3, 3);
|
||||
assert( (t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert(!(t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 2, 2);
|
||||
assert(!(t1 < t2));
|
||||
assert(!(t1 <= t2));
|
||||
assert( (t1 > t2));
|
||||
assert( (t1 >= t2));
|
||||
}
|
||||
{
|
||||
typedef std::tuple<char, int, double> T1;
|
||||
typedef std::tuple<double, char, int> T2;
|
||||
const T1 t1(1, 2, 3);
|
||||
const T2 t2(1, 2, 4);
|
||||
assert( (t1 < t2));
|
||||
assert( (t1 <= t2));
|
||||
assert(!(t1 > t2));
|
||||
assert(!(t1 >= t2));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user