diff options
Diffstat (limited to 'libcxx/test/utilities/template.bitset/bitset.members')
26 files changed, 26 insertions, 26 deletions
diff --git a/libcxx/test/utilities/template.bitset/bitset.members/all.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/all.pass.cpp index 45a3cb46db6..fbe6447b075 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/all.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/all.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bool all() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_all()
{
std::bitset<N> v;
v.reset();
assert(v.all() == (N == 0));
v.set();
assert(v.all() == true);
if (N > 1)
{
v[N/2] = false;
assert(v.all() == false);
}
}
int main()
{
test_all<0>();
test_all<1>();
test_all<31>();
test_all<32>();
test_all<33>();
test_all<63>();
test_all<64>();
test_all<65>();
test_all<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bool all() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_all()
{
std::bitset<N> v;
v.reset();
assert(v.all() == (N == 0));
v.set();
assert(v.all() == true);
if (N > 1)
{
v[N/2] = false;
assert(v.all() == false);
}
}
int main()
{
test_all<0>();
test_all<1>();
test_all<31>();
test_all<32>();
test_all<33>();
test_all<63>();
test_all<64>();
test_all<65>();
test_all<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/any.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/any.pass.cpp index ede38cdcadf..40cd0067bc6 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/any.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/any.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bool any() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_any()
{
std::bitset<N> v;
v.reset();
assert(v.any() == false);
v.set();
assert(v.any() == (N != 0));
if (N > 1)
{
v[N/2] = false;
assert(v.any() == true);
v.reset();
v[N/2] = true;
assert(v.any() == true);
}
}
int main()
{
test_any<0>();
test_any<1>();
test_any<31>();
test_any<32>();
test_any<33>();
test_any<63>();
test_any<64>();
test_any<65>();
test_any<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bool any() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_any()
{
std::bitset<N> v;
v.reset();
assert(v.any() == false);
v.set();
assert(v.any() == (N != 0));
if (N > 1)
{
v[N/2] = false;
assert(v.any() == true);
v.reset();
v[N/2] = true;
assert(v.any() == true);
}
}
int main()
{
test_any<0>();
test_any<1>();
test_any<31>();
test_any<32>();
test_any<33>();
test_any<63>();
test_any<64>();
test_any<65>();
test_any<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/count.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/count.pass.cpp index fbb1cffc4ed..8b5a727361a 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/count.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/count.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test size_t count() const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_count()
{
const std::bitset<N> v = make_bitset<N>();
std::size_t c1 = v.count();
std::size_t c2 = 0;
for (std::size_t i = 0; i < N; ++i)
if (v[i])
++c2;
assert(c1 == c2);
}
int main()
{
test_count<0>();
test_count<1>();
test_count<31>();
test_count<32>();
test_count<33>();
test_count<63>();
test_count<64>();
test_count<65>();
test_count<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test size_t count() const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_count()
{
const std::bitset<N> v = make_bitset<N>();
std::size_t c1 = v.count();
std::size_t c2 = 0;
for (std::size_t i = 0; i < N; ++i)
if (v[i])
++c2;
assert(c1 == c2);
}
int main()
{
test_count<0>();
test_count<1>();
test_count<31>();
test_count<32>();
test_count<33>();
test_count<63>();
test_count<64>();
test_count<65>();
test_count<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/flip_all.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/flip_all.pass.cpp index bb180d7f2f0..790d0b22cd9 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/flip_all.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/flip_all.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& flip();
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_flip_all()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
v2.flip();
for (std::size_t i = 0; i < N; ++i)
assert(v2[i] == ~v1[i]);
}
int main()
{
test_flip_all<0>();
test_flip_all<1>();
test_flip_all<31>();
test_flip_all<32>();
test_flip_all<33>();
test_flip_all<63>();
test_flip_all<64>();
test_flip_all<65>();
test_flip_all<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& flip();
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_flip_all()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
v2.flip();
for (std::size_t i = 0; i < N; ++i)
assert(v2[i] == ~v1[i]);
}
int main()
{
test_flip_all<0>();
test_flip_all<1>();
test_flip_all<31>();
test_flip_all<32>();
test_flip_all<33>();
test_flip_all<63>();
test_flip_all<64>();
test_flip_all<65>();
test_flip_all<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/flip_one.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/flip_one.pass.cpp index 8985e374c92..10e1b7dbe4d 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/flip_one.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/flip_one.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& flip(size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_flip_one()
{
std::bitset<N> v = make_bitset<N>();
try
{
v.flip(50);
bool b = v[50];
if (50 >= v.size())
assert(false);
assert(v[50] == b);
v.flip(50);
assert(v[50] != b);
v.flip(50);
assert(v[50] == b);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_flip_one<0>();
test_flip_one<1>();
test_flip_one<31>();
test_flip_one<32>();
test_flip_one<33>();
test_flip_one<63>();
test_flip_one<64>();
test_flip_one<65>();
test_flip_one<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& flip(size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_flip_one()
{
std::bitset<N> v = make_bitset<N>();
try
{
v.flip(50);
bool b = v[50];
if (50 >= v.size())
assert(false);
assert(v[50] == b);
v.flip(50);
assert(v[50] != b);
v.flip(50);
assert(v[50] == b);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_flip_one<0>();
test_flip_one<1>();
test_flip_one<31>();
test_flip_one<32>();
test_flip_one<33>();
test_flip_one<63>();
test_flip_one<64>();
test_flip_one<65>();
test_flip_one<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/index.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/index.pass.cpp index f59e4746148..b18489037eb 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/index.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/index.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>::reference operator[](size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_index_const()
{
std::bitset<N> v1 = make_bitset<N>();
if (N > 0)
{
assert(v1[N/2] == v1.test(N/2));
typename std::bitset<N>::reference r = v1[N/2];
assert(r == v1.test(N/2));
typename std::bitset<N>::reference r2 = v1[N/2];
r = r2;
assert(r == v1.test(N/2));
r = false;
assert(r == false);
assert(v1.test(N/2) == false);
r = true;
assert(r == true);
assert(v1.test(N/2) == true);
bool b = ~r;
assert(r == true);
assert(v1.test(N/2) == true);
assert(b == false);
r.flip();
assert(r == false);
assert(v1.test(N/2) == false);
}
}
int main()
{
test_index_const<0>();
test_index_const<1>();
test_index_const<31>();
test_index_const<32>();
test_index_const<33>();
test_index_const<63>();
test_index_const<64>();
test_index_const<65>();
test_index_const<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>::reference operator[](size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_index_const()
{
std::bitset<N> v1 = make_bitset<N>();
if (N > 0)
{
assert(v1[N/2] == v1.test(N/2));
typename std::bitset<N>::reference r = v1[N/2];
assert(r == v1.test(N/2));
typename std::bitset<N>::reference r2 = v1[N/2];
r = r2;
assert(r == v1.test(N/2));
r = false;
assert(r == false);
assert(v1.test(N/2) == false);
r = true;
assert(r == true);
assert(v1.test(N/2) == true);
bool b = ~r;
assert(r == true);
assert(v1.test(N/2) == true);
assert(b == false);
r.flip();
assert(r == false);
assert(v1.test(N/2) == false);
}
}
int main()
{
test_index_const<0>();
test_index_const<1>();
test_index_const<31>();
test_index_const<32>();
test_index_const<33>();
test_index_const<63>();
test_index_const<64>();
test_index_const<65>();
test_index_const<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/index_const.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/index_const.pass.cpp index 0b74f8208f9..60973a275a8 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/index_const.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/index_const.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test constexpr bool operator[](size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_index_const()
{
const std::bitset<N> v1 = make_bitset<N>();
if (N > 0)
{
assert(v1[N/2] == v1.test(N/2));
}
}
int main()
{
test_index_const<0>();
test_index_const<1>();
test_index_const<31>();
test_index_const<32>();
test_index_const<33>();
test_index_const<63>();
test_index_const<64>();
test_index_const<65>();
test_index_const<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test constexpr bool operator[](size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_index_const()
{
const std::bitset<N> v1 = make_bitset<N>();
if (N > 0)
{
assert(v1[N/2] == v1.test(N/2));
}
}
int main()
{
test_index_const<0>();
test_index_const<1>();
test_index_const<31>();
test_index_const<32>();
test_index_const<33>();
test_index_const<63>();
test_index_const<64>();
test_index_const<65>();
test_index_const<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/left_shift.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/left_shift.pass.cpp index e6017e04525..b1d373187e4 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/left_shift.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/left_shift.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N> operator<<(size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_left_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
assert((v1 <<= s) == (v2 << s));
}
}
int main()
{
test_left_shift<0>();
test_left_shift<1>();
test_left_shift<31>();
test_left_shift<32>();
test_left_shift<33>();
test_left_shift<63>();
test_left_shift<64>();
test_left_shift<65>();
test_left_shift<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N> operator<<(size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_left_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
assert((v1 <<= s) == (v2 << s));
}
}
int main()
{
test_left_shift<0>();
test_left_shift<1>();
test_left_shift<31>();
test_left_shift<32>();
test_left_shift<33>();
test_left_shift<63>();
test_left_shift<64>();
test_left_shift<65>();
test_left_shift<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp index 11da5ad4cee..8ea0981c525 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator<<=(size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_left_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
v1 <<= s;
for (std::size_t i = 0; i < N; ++i)
if (i < s)
assert(v1[i] == 0);
else
assert(v1[i] == v2[i-s]);
}
}
int main()
{
test_left_shift<0>();
test_left_shift<1>();
test_left_shift<31>();
test_left_shift<32>();
test_left_shift<33>();
test_left_shift<63>();
test_left_shift<64>();
test_left_shift<65>();
test_left_shift<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator<<=(size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_left_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
v1 <<= s;
for (std::size_t i = 0; i < N; ++i)
if (i < s)
assert(v1[i] == 0);
else
assert(v1[i] == v2[i-s]);
}
}
int main()
{
test_left_shift<0>();
test_left_shift<1>();
test_left_shift<31>();
test_left_shift<32>();
test_left_shift<33>();
test_left_shift<63>();
test_left_shift<64>();
test_left_shift<65>();
test_left_shift<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/none.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/none.pass.cpp index a695285a45e..abba3fd54f0 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/none.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/none.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bool none() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_none()
{
std::bitset<N> v;
v.reset();
assert(v.none() == true);
v.set();
assert(v.none() == (N == 0));
if (N > 1)
{
v[N/2] = false;
assert(v.none() == false);
v.reset();
v[N/2] = true;
assert(v.none() == false);
}
}
int main()
{
test_none<0>();
test_none<1>();
test_none<31>();
test_none<32>();
test_none<33>();
test_none<63>();
test_none<64>();
test_none<65>();
test_none<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bool none() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_none()
{
std::bitset<N> v;
v.reset();
assert(v.none() == true);
v.set();
assert(v.none() == (N == 0));
if (N > 1)
{
v[N/2] = false;
assert(v.none() == false);
v.reset();
v[N/2] = true;
assert(v.none() == false);
}
}
int main()
{
test_none<0>();
test_none<1>();
test_none<31>();
test_none<32>();
test_none<33>();
test_none<63>();
test_none<64>();
test_none<65>();
test_none<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/not_all.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/not_all.pass.cpp index 4b5bcbd9222..edaeac67305 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/not_all.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/not_all.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N> operator~() const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_not_all()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = ~v1;
for (std::size_t i = 0; i < N; ++i)
assert(v2[i] == ~v1[i]);
}
int main()
{
test_not_all<0>();
test_not_all<1>();
test_not_all<31>();
test_not_all<32>();
test_not_all<33>();
test_not_all<63>();
test_not_all<64>();
test_not_all<65>();
test_not_all<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N> operator~() const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_not_all()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = ~v1;
for (std::size_t i = 0; i < N; ++i)
assert(v2[i] == ~v1[i]);
}
int main()
{
test_not_all<0>();
test_not_all<1>();
test_not_all<31>();
test_not_all<32>();
test_not_all<33>();
test_not_all<63>();
test_not_all<64>();
test_not_all<65>();
test_not_all<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp index 940ef95b991..420443ea3ac 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator&=(const bitset<N>& rhs);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_op_and_eq()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = make_bitset<N>();
std::bitset<N> v3 = v1;
v1 &= v2;
for (std::size_t i = 0; i < N; ++i)
assert(v1[i] == (v3[i] && v2[i]));
}
int main()
{
test_op_and_eq<0>();
test_op_and_eq<1>();
test_op_and_eq<31>();
test_op_and_eq<32>();
test_op_and_eq<33>();
test_op_and_eq<63>();
test_op_and_eq<64>();
test_op_and_eq<65>();
test_op_and_eq<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator&=(const bitset<N>& rhs);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_op_and_eq()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = make_bitset<N>();
std::bitset<N> v3 = v1;
v1 &= v2;
for (std::size_t i = 0; i < N; ++i)
assert(v1[i] == (v3[i] && v2[i]));
}
int main()
{
test_op_and_eq<0>();
test_op_and_eq<1>();
test_op_and_eq<31>();
test_op_and_eq<32>();
test_op_and_eq<33>();
test_op_and_eq<63>();
test_op_and_eq<64>();
test_op_and_eq<65>();
test_op_and_eq<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp index 8e2e5e593c1..beac3d31c77 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test:
// bool operator==(const bitset<N>& rhs) const;
// bool operator!=(const bitset<N>& rhs) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_equality()
{
const std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
assert(v1 == v2);
if (N > 0)
{
v2[N/2].flip();
assert(v1 != v2);
}
}
int main()
{
test_equality<0>();
test_equality<1>();
test_equality<31>();
test_equality<32>();
test_equality<33>();
test_equality<63>();
test_equality<64>();
test_equality<65>();
test_equality<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test:
// bool operator==(const bitset<N>& rhs) const;
// bool operator!=(const bitset<N>& rhs) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_equality()
{
const std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
assert(v1 == v2);
if (N > 0)
{
v2[N/2].flip();
assert(v1 != v2);
}
}
int main()
{
test_equality<0>();
test_equality<1>();
test_equality<31>();
test_equality<32>();
test_equality<33>();
test_equality<63>();
test_equality<64>();
test_equality<65>();
test_equality<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp index 70300d667dd..6de4b037693 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator|=(const bitset<N>& rhs);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_op_or_eq()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = make_bitset<N>();
std::bitset<N> v3 = v1;
v1 |= v2;
for (std::size_t i = 0; i < N; ++i)
assert(v1[i] == (v3[i] || v2[i]));
}
int main()
{
test_op_or_eq<0>();
test_op_or_eq<1>();
test_op_or_eq<31>();
test_op_or_eq<32>();
test_op_or_eq<33>();
test_op_or_eq<63>();
test_op_or_eq<64>();
test_op_or_eq<65>();
test_op_or_eq<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator|=(const bitset<N>& rhs);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_op_or_eq()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = make_bitset<N>();
std::bitset<N> v3 = v1;
v1 |= v2;
for (std::size_t i = 0; i < N; ++i)
assert(v1[i] == (v3[i] || v2[i]));
}
int main()
{
test_op_or_eq<0>();
test_op_or_eq<1>();
test_op_or_eq<31>();
test_op_or_eq<32>();
test_op_or_eq<33>();
test_op_or_eq<63>();
test_op_or_eq<64>();
test_op_or_eq<65>();
test_op_or_eq<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp index 00724f4d2ec..b02e5cd5d00 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator^=(const bitset<N>& rhs);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_op_xor_eq()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = make_bitset<N>();
std::bitset<N> v3 = v1;
v1 ^= v2;
for (std::size_t i = 0; i < N; ++i)
assert(v1[i] == (v3[i] != v2[i]));
}
int main()
{
test_op_xor_eq<0>();
test_op_xor_eq<1>();
test_op_xor_eq<31>();
test_op_xor_eq<32>();
test_op_xor_eq<33>();
test_op_xor_eq<63>();
test_op_xor_eq<64>();
test_op_xor_eq<65>();
test_op_xor_eq<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator^=(const bitset<N>& rhs);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_op_xor_eq()
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = make_bitset<N>();
std::bitset<N> v3 = v1;
v1 ^= v2;
for (std::size_t i = 0; i < N; ++i)
assert(v1[i] == (v3[i] != v2[i]));
}
int main()
{
test_op_xor_eq<0>();
test_op_xor_eq<1>();
test_op_xor_eq<31>();
test_op_xor_eq<32>();
test_op_xor_eq<33>();
test_op_xor_eq<63>();
test_op_xor_eq<64>();
test_op_xor_eq<65>();
test_op_xor_eq<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/reset_all.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/reset_all.pass.cpp index 5bde1d374b9..0d8695bd089 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/reset_all.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/reset_all.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& reset();
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_reset_all()
{
std::bitset<N> v;
v.set();
v.reset();
for (std::size_t i = 0; i < N; ++i)
assert(!v[i]);
}
int main()
{
test_reset_all<0>();
test_reset_all<1>();
test_reset_all<31>();
test_reset_all<32>();
test_reset_all<33>();
test_reset_all<63>();
test_reset_all<64>();
test_reset_all<65>();
test_reset_all<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& reset();
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_reset_all()
{
std::bitset<N> v;
v.set();
v.reset();
for (std::size_t i = 0; i < N; ++i)
assert(!v[i]);
}
int main()
{
test_reset_all<0>();
test_reset_all<1>();
test_reset_all<31>();
test_reset_all<32>();
test_reset_all<33>();
test_reset_all<63>();
test_reset_all<64>();
test_reset_all<65>();
test_reset_all<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/reset_one.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/reset_one.pass.cpp index 631030a50d9..61c1410c007 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/reset_one.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/reset_one.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& reset(size_t pos);
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_reset_one()
{
std::bitset<N> v;
try
{
v.set();
v.reset(50);
if (50 >= v.size())
assert(false);
for (unsigned i = 0; i < v.size(); ++i)
if (i == 50)
assert(!v[i]);
else
assert(v[i]);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_reset_one<0>();
test_reset_one<1>();
test_reset_one<31>();
test_reset_one<32>();
test_reset_one<33>();
test_reset_one<63>();
test_reset_one<64>();
test_reset_one<65>();
test_reset_one<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& reset(size_t pos);
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_reset_one()
{
std::bitset<N> v;
try
{
v.set();
v.reset(50);
if (50 >= v.size())
assert(false);
for (unsigned i = 0; i < v.size(); ++i)
if (i == 50)
assert(!v[i]);
else
assert(v[i]);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_reset_one<0>();
test_reset_one<1>();
test_reset_one<31>();
test_reset_one<32>();
test_reset_one<33>();
test_reset_one<63>();
test_reset_one<64>();
test_reset_one<65>();
test_reset_one<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/right_shift.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/right_shift.pass.cpp index 372d32a0ac8..4c48638ed38 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/right_shift.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/right_shift.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N> operator>>(size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_right_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
assert((v1 >>= s) == (v2 >> s));
}
}
int main()
{
test_right_shift<0>();
test_right_shift<1>();
test_right_shift<31>();
test_right_shift<32>();
test_right_shift<33>();
test_right_shift<63>();
test_right_shift<64>();
test_right_shift<65>();
test_right_shift<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N> operator>>(size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_right_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
assert((v1 >>= s) == (v2 >> s));
}
}
int main()
{
test_right_shift<0>();
test_right_shift<1>();
test_right_shift<31>();
test_right_shift<32>();
test_right_shift<33>();
test_right_shift<63>();
test_right_shift<64>();
test_right_shift<65>();
test_right_shift<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp index 724c39e10c1..71f3347961b 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator<<=(size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_right_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
v1 >>= s;
for (std::size_t i = 0; i < N; ++i)
if (i + s < N)
assert(v1[i] == v2[i + s]);
else
assert(v1[i] == 0);
}
}
int main()
{
test_right_shift<0>();
test_right_shift<1>();
test_right_shift<31>();
test_right_shift<32>();
test_right_shift<33>();
test_right_shift<63>();
test_right_shift<64>();
test_right_shift<65>();
test_right_shift<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator<<=(size_t pos);
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_right_shift()
{
for (std::size_t s = 0; s <= N+1; ++s)
{
std::bitset<N> v1 = make_bitset<N>();
std::bitset<N> v2 = v1;
v1 >>= s;
for (std::size_t i = 0; i < N; ++i)
if (i + s < N)
assert(v1[i] == v2[i + s]);
else
assert(v1[i] == 0);
}
}
int main()
{
test_right_shift<0>();
test_right_shift<1>();
test_right_shift<31>();
test_right_shift<32>();
test_right_shift<33>();
test_right_shift<63>();
test_right_shift<64>();
test_right_shift<65>();
test_right_shift<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/set_all.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/set_all.pass.cpp index a26a47dc7a9..289eae31622 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/set_all.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/set_all.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& set();
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_set_all()
{
std::bitset<N> v;
v.set();
for (std::size_t i = 0; i < N; ++i)
assert(v[i]);
}
int main()
{
test_set_all<0>();
test_set_all<1>();
test_set_all<31>();
test_set_all<32>();
test_set_all<33>();
test_set_all<63>();
test_set_all<64>();
test_set_all<65>();
test_set_all<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& set();
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_set_all()
{
std::bitset<N> v;
v.set();
for (std::size_t i = 0; i < N; ++i)
assert(v[i]);
}
int main()
{
test_set_all<0>();
test_set_all<1>();
test_set_all<31>();
test_set_all<32>();
test_set_all<33>();
test_set_all<63>();
test_set_all<64>();
test_set_all<65>();
test_set_all<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/set_one.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/set_one.pass.cpp index d01a70d49e5..899b2f4cfb8 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/set_one.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/set_one.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& set(size_t pos, bool val = true);
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_set_one()
{
std::bitset<N> v;
try
{
v.set(50);
if (50 >= v.size())
assert(false);
assert(v[50]);
}
catch (std::out_of_range&)
{
}
try
{
v.set(50, false);
if (50 >= v.size())
assert(false);
assert(!v[50]);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_set_one<0>();
test_set_one<1>();
test_set_one<31>();
test_set_one<32>();
test_set_one<33>();
test_set_one<63>();
test_set_one<64>();
test_set_one<65>();
test_set_one<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& set(size_t pos, bool val = true);
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_set_one()
{
std::bitset<N> v;
try
{
v.set(50);
if (50 >= v.size())
assert(false);
assert(v[50]);
}
catch (std::out_of_range&)
{
}
try
{
v.set(50, false);
if (50 >= v.size())
assert(false);
assert(!v[50]);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_set_one<0>();
test_set_one<1>();
test_set_one<31>();
test_set_one<32>();
test_set_one<33>();
test_set_one<63>();
test_set_one<64>();
test_set_one<65>();
test_set_one<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/size.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/size.pass.cpp index 5641b1d2d3c..9109d2a2c0f 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/size.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/size.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test size_t count() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_size()
{
const std::bitset<N> v;
assert(v.size() == N);
}
int main()
{
test_size<0>();
test_size<1>();
test_size<31>();
test_size<32>();
test_size<33>();
test_size<63>();
test_size<64>();
test_size<65>();
test_size<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test size_t count() const;
#include <bitset>
#include <cassert>
template <std::size_t N>
void test_size()
{
const std::bitset<N> v;
assert(v.size() == N);
}
int main()
{
test_size<0>();
test_size<1>();
test_size<31>();
test_size<32>();
test_size<33>();
test_size<63>();
test_size<64>();
test_size<65>();
test_size<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/test.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/test.pass.cpp index 2f290377ec0..530cc1d9fe6 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/test.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/test.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test constexpr bool test(size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_test()
{
const std::bitset<N> v1 = make_bitset<N>();
try
{
bool b = v1.test(50);
if (50 >= v1.size())
assert(false);
assert(b == v1[50]);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_test<0>();
test_test<1>();
test_test<31>();
test_test<32>();
test_test<33>();
test_test<63>();
test_test<64>();
test_test<65>();
test_test<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test constexpr bool test(size_t pos) const;
#include <bitset>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_test()
{
const std::bitset<N> v1 = make_bitset<N>();
try
{
bool b = v1.test(50);
if (50 >= v1.size())
assert(false);
assert(b == v1[50]);
}
catch (std::out_of_range&)
{
}
}
int main()
{
test_test<0>();
test_test<1>();
test_test<31>();
test_test<32>();
test_test<33>();
test_test<63>();
test_test<64>();
test_test<65>();
test_test<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/to_string.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/to_string.pass.cpp index c1c11f1002f..a44877902b3 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/to_string.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/to_string.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test:
// template <class charT, class traits, class Allocator>
// basic_string<charT, traits, Allocator>
// to_string(charT zero = charT('0'), charT one = charT('1')) const;
//
// template <class charT, class traits>
// basic_string<charT, traits, allocator<charT> > to_string() const;
//
// template <class charT>
// basic_string<charT, char_traits<charT>, allocator<charT> > to_string() const;
//
// basic_string<char, char_traits<char>, allocator<char> > to_string() const;
#include <bitset>
#include <string>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_to_string()
{
{
std::bitset<N> v = make_bitset<N>();
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t> >();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.template to_string<char>();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.to_string();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
}
{
std::bitset<N> v = make_bitset<N>();
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t> >('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.template to_string<char>('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.to_string('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
}
{
std::bitset<N> v = make_bitset<N>();
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t> >('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.template to_string<char>('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.to_string('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
}
}
int main()
{
test_to_string<0>();
test_to_string<1>();
test_to_string<31>();
test_to_string<32>();
test_to_string<33>();
test_to_string<63>();
test_to_string<64>();
test_to_string<65>();
test_to_string<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test:
// template <class charT, class traits, class Allocator>
// basic_string<charT, traits, Allocator>
// to_string(charT zero = charT('0'), charT one = charT('1')) const;
//
// template <class charT, class traits>
// basic_string<charT, traits, allocator<charT> > to_string() const;
//
// template <class charT>
// basic_string<charT, char_traits<charT>, allocator<charT> > to_string() const;
//
// basic_string<char, char_traits<char>, allocator<char> > to_string() const;
#include <bitset>
#include <string>
#include <cstdlib>
#include <cassert>
template <std::size_t N>
std::bitset<N>
make_bitset()
{
std::bitset<N> v;
for (std::size_t i = 0; i < N; ++i)
v[i] = static_cast<bool>(std::rand() & 1);
return v;
}
template <std::size_t N>
void test_to_string()
{
{
std::bitset<N> v = make_bitset<N>();
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t> >();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.template to_string<char>();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.to_string();
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
}
{
std::bitset<N> v = make_bitset<N>();
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t> >('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.template to_string<char>('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.to_string('0');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
}
{
std::bitset<N> v = make_bitset<N>();
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::wstring s = v.template to_string<wchar_t, std::char_traits<wchar_t> >('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.template to_string<char>('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
{
std::string s = v.to_string('0', '1');
for (std::size_t i = 0; i < N; ++i)
if (v[i])
assert(s[N - 1 - i] == '1');
else
assert(s[N - 1 - i] == '0');
}
}
}
int main()
{
test_to_string<0>();
test_to_string<1>();
test_to_string<31>();
test_to_string<32>();
test_to_string<33>();
test_to_string<63>();
test_to_string<64>();
test_to_string<65>();
test_to_string<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/to_ullong.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/to_ullong.pass.cpp index c975c187f7f..0fbf212e82e 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/to_ullong.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/to_ullong.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test unsigned long long to_ullong() const;
#include <bitset>
#include <algorithm>
#include <climits>
#include <cassert>
template <std::size_t N>
void test_to_ullong()
{
const std::size_t M = sizeof(unsigned long long) * CHAR_BIT < N ? sizeof(unsigned long long) * CHAR_BIT : N;
const std::size_t X = M == 0 ? sizeof(unsigned long long) * CHAR_BIT - 1 : sizeof(unsigned long long) * CHAR_BIT - M;
const unsigned long long max = M == 0 ? 0 : (unsigned long long)(-1) >> X;
unsigned long long tests[] = {0,
std::min<unsigned long long>(1, max),
std::min<unsigned long long>(2, max),
std::min<unsigned long long>(3, max),
std::min(max, max-3),
std::min(max, max-2),
std::min(max, max-1),
max};
for (std::size_t i = 0; i < sizeof(tests)/sizeof(tests[0]); ++i)
{
unsigned long long j = tests[i];
std::bitset<N> v(j);
assert(j == v.to_ullong());
}
}
int main()
{
test_to_ullong<0>();
test_to_ullong<1>();
test_to_ullong<31>();
test_to_ullong<32>();
test_to_ullong<33>();
test_to_ullong<63>();
test_to_ullong<64>();
test_to_ullong<65>();
test_to_ullong<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test unsigned long long to_ullong() const;
#include <bitset>
#include <algorithm>
#include <climits>
#include <cassert>
template <std::size_t N>
void test_to_ullong()
{
const std::size_t M = sizeof(unsigned long long) * CHAR_BIT < N ? sizeof(unsigned long long) * CHAR_BIT : N;
const std::size_t X = M == 0 ? sizeof(unsigned long long) * CHAR_BIT - 1 : sizeof(unsigned long long) * CHAR_BIT - M;
const unsigned long long max = M == 0 ? 0 : (unsigned long long)(-1) >> X;
unsigned long long tests[] = {0,
std::min<unsigned long long>(1, max),
std::min<unsigned long long>(2, max),
std::min<unsigned long long>(3, max),
std::min(max, max-3),
std::min(max, max-2),
std::min(max, max-1),
max};
for (std::size_t i = 0; i < sizeof(tests)/sizeof(tests[0]); ++i)
{
unsigned long long j = tests[i];
std::bitset<N> v(j);
assert(j == v.to_ullong());
}
}
int main()
{
test_to_ullong<0>();
test_to_ullong<1>();
test_to_ullong<31>();
test_to_ullong<32>();
test_to_ullong<33>();
test_to_ullong<63>();
test_to_ullong<64>();
test_to_ullong<65>();
test_to_ullong<1000>();
}
\ No newline at end of file diff --git a/libcxx/test/utilities/template.bitset/bitset.members/to_ulong.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.members/to_ulong.pass.cpp index 954a5b52dab..da5f163362b 100644 --- a/libcxx/test/utilities/template.bitset/bitset.members/to_ulong.pass.cpp +++ b/libcxx/test/utilities/template.bitset/bitset.members/to_ulong.pass.cpp @@ -1 +1 @@ -//===----------------------------------------------------------------------===//
//
// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test unsigned long to_ulong() const;
#include <bitset>
#include <algorithm>
#include <climits>
#include <cassert>
template <std::size_t N>
void test_to_ulong()
{
const std::size_t M = sizeof(unsigned long) * CHAR_BIT < N ? sizeof(unsigned long) * CHAR_BIT : N;
const std::size_t X = M == 0 ? sizeof(unsigned long) * CHAR_BIT - 1 : sizeof(unsigned long) * CHAR_BIT - M;
const std::size_t max = M == 0 ? 0 : std::size_t(-1) >> X;
std::size_t tests[] = {0,
std::min<std::size_t>(1, max),
std::min<std::size_t>(2, max),
std::min<std::size_t>(3, max),
std::min(max, max-3),
std::min(max, max-2),
std::min(max, max-1),
max};
for (std::size_t i = 0; i < sizeof(tests)/sizeof(tests[0]); ++i)
{
std::size_t j = tests[i];
std::bitset<N> v(j);
assert(j == v.to_ulong());
}
}
int main()
{
test_to_ulong<0>();
test_to_ulong<1>();
test_to_ulong<31>();
test_to_ulong<32>();
test_to_ulong<33>();
test_to_ulong<63>();
test_to_ulong<64>();
test_to_ulong<65>();
test_to_ulong<1000>();
}
\ No newline at end of file +//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test unsigned long to_ulong() const;
#include <bitset>
#include <algorithm>
#include <climits>
#include <cassert>
template <std::size_t N>
void test_to_ulong()
{
const std::size_t M = sizeof(unsigned long) * CHAR_BIT < N ? sizeof(unsigned long) * CHAR_BIT : N;
const std::size_t X = M == 0 ? sizeof(unsigned long) * CHAR_BIT - 1 : sizeof(unsigned long) * CHAR_BIT - M;
const std::size_t max = M == 0 ? 0 : std::size_t(-1) >> X;
std::size_t tests[] = {0,
std::min<std::size_t>(1, max),
std::min<std::size_t>(2, max),
std::min<std::size_t>(3, max),
std::min(max, max-3),
std::min(max, max-2),
std::min(max, max-1),
max};
for (std::size_t i = 0; i < sizeof(tests)/sizeof(tests[0]); ++i)
{
std::size_t j = tests[i];
std::bitset<N> v(j);
assert(j == v.to_ulong());
}
}
int main()
{
test_to_ulong<0>();
test_to_ulong<1>();
test_to_ulong<31>();
test_to_ulong<32>();
test_to_ulong<33>();
test_to_ulong<63>();
test_to_ulong<64>();
test_to_ulong<65>();
test_to_ulong<1000>();
}
\ No newline at end of file |