summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/template.bitset/bitset.operators
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/utilities/template.bitset/bitset.operators')
-rw-r--r--libcxx/test/utilities/template.bitset/bitset.operators/op_and.pass.cpp47
-rw-r--r--libcxx/test/utilities/template.bitset/bitset.operators/op_not.pass.cpp47
-rw-r--r--libcxx/test/utilities/template.bitset/bitset.operators/op_or.pass.cpp47
-rw-r--r--libcxx/test/utilities/template.bitset/bitset.operators/stream_in.pass.cpp27
-rw-r--r--libcxx/test/utilities/template.bitset/bitset.operators/stream_out.pass.cpp27
5 files changed, 190 insertions, 5 deletions
diff --git a/libcxx/test/utilities/template.bitset/bitset.operators/op_and.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.operators/op_and.pass.cpp
index a27b55bdbd9..437f8c47e01 100644
--- a/libcxx/test/utilities/template.bitset/bitset.operators/op_and.pass.cpp
+++ b/libcxx/test/utilities/template.bitset/bitset.operators/op_and.pass.cpp
@@ -1 +1,46 @@
-//===----------------------------------------------------------------------===// // // 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>& lhs, 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() { std::bitset<N> v1 = make_bitset<N>(); std::bitset<N> v2 = make_bitset<N>(); std::bitset<N> v3 = v1; assert((v1 & v2) == (v3 &= v2));; } int main() { test_op_and<0>(); test_op_and<1>(); test_op_and<31>(); test_op_and<32>(); test_op_and<33>(); test_op_and<63>(); test_op_and<64>(); test_op_and<65>(); test_op_and<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>& lhs, 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()
+{
+ std::bitset<N> v1 = make_bitset<N>();
+ std::bitset<N> v2 = make_bitset<N>();
+ std::bitset<N> v3 = v1;
+ assert((v1 & v2) == (v3 &= v2));;
+}
+
+int main()
+{
+ test_op_and<0>();
+ test_op_and<1>();
+ test_op_and<31>();
+ test_op_and<32>();
+ test_op_and<33>();
+ test_op_and<63>();
+ test_op_and<64>();
+ test_op_and<65>();
+ test_op_and<1000>();
+}
diff --git a/libcxx/test/utilities/template.bitset/bitset.operators/op_not.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.operators/op_not.pass.cpp
index e4b20fd9a95..5d4196ed43a 100644
--- a/libcxx/test/utilities/template.bitset/bitset.operators/op_not.pass.cpp
+++ b/libcxx/test/utilities/template.bitset/bitset.operators/op_not.pass.cpp
@@ -1 +1,46 @@
-//===----------------------------------------------------------------------===// // // 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>& lhs, 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_not() { std::bitset<N> v1 = make_bitset<N>(); std::bitset<N> v2 = make_bitset<N>(); std::bitset<N> v3 = v1; assert((v1 ^ v2) == (v3 ^= v2));; } int main() { test_op_not<0>(); test_op_not<1>(); test_op_not<31>(); test_op_not<32>(); test_op_not<33>(); test_op_not<63>(); test_op_not<64>(); test_op_not<65>(); test_op_not<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>& lhs, 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_not()
+{
+ std::bitset<N> v1 = make_bitset<N>();
+ std::bitset<N> v2 = make_bitset<N>();
+ std::bitset<N> v3 = v1;
+ assert((v1 ^ v2) == (v3 ^= v2));;
+}
+
+int main()
+{
+ test_op_not<0>();
+ test_op_not<1>();
+ test_op_not<31>();
+ test_op_not<32>();
+ test_op_not<33>();
+ test_op_not<63>();
+ test_op_not<64>();
+ test_op_not<65>();
+ test_op_not<1000>();
+}
diff --git a/libcxx/test/utilities/template.bitset/bitset.operators/op_or.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.operators/op_or.pass.cpp
index 573ab8e6e0a..56667140a70 100644
--- a/libcxx/test/utilities/template.bitset/bitset.operators/op_or.pass.cpp
+++ b/libcxx/test/utilities/template.bitset/bitset.operators/op_or.pass.cpp
@@ -1 +1,46 @@
-//===----------------------------------------------------------------------===// // // 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>& lhs, 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() { std::bitset<N> v1 = make_bitset<N>(); std::bitset<N> v2 = make_bitset<N>(); std::bitset<N> v3 = v1; assert((v1 | v2) == (v3 |= v2));; } int main() { test_op_or<0>(); test_op_or<1>(); test_op_or<31>(); test_op_or<32>(); test_op_or<33>(); test_op_or<63>(); test_op_or<64>(); test_op_or<65>(); test_op_or<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>& lhs, 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()
+{
+ std::bitset<N> v1 = make_bitset<N>();
+ std::bitset<N> v2 = make_bitset<N>();
+ std::bitset<N> v3 = v1;
+ assert((v1 | v2) == (v3 |= v2));;
+}
+
+int main()
+{
+ test_op_or<0>();
+ test_op_or<1>();
+ test_op_or<31>();
+ test_op_or<32>();
+ test_op_or<33>();
+ test_op_or<63>();
+ test_op_or<64>();
+ test_op_or<65>();
+ test_op_or<1000>();
+}
diff --git a/libcxx/test/utilities/template.bitset/bitset.operators/stream_in.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.operators/stream_in.pass.cpp
index b18007e41b6..edd2fd85577 100644
--- a/libcxx/test/utilities/template.bitset/bitset.operators/stream_in.pass.cpp
+++ b/libcxx/test/utilities/template.bitset/bitset.operators/stream_in.pass.cpp
@@ -1 +1,26 @@
-//===----------------------------------------------------------------------===// // // 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, size_t N> // basic_ostream<charT, traits>& // operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x); #include <bitset> #include <sstream> #include <cassert> int main() { std::istringstream in("01011010"); std::bitset<8> b; in >> b; assert(b.to_ulong() == 0x5A); } \ 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, size_t N>
+// basic_ostream<charT, traits>&
+// operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x);
+
+#include <bitset>
+#include <sstream>
+#include <cassert>
+
+int main()
+{
+ std::istringstream in("01011010");
+ std::bitset<8> b;
+ in >> b;
+ assert(b.to_ulong() == 0x5A);
+}
diff --git a/libcxx/test/utilities/template.bitset/bitset.operators/stream_out.pass.cpp b/libcxx/test/utilities/template.bitset/bitset.operators/stream_out.pass.cpp
index 41486d9b4fe..5ebf87f3570 100644
--- a/libcxx/test/utilities/template.bitset/bitset.operators/stream_out.pass.cpp
+++ b/libcxx/test/utilities/template.bitset/bitset.operators/stream_out.pass.cpp
@@ -1 +1,26 @@
-//===----------------------------------------------------------------------===// // // 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, size_t N> // basic_istream<charT, traits>& // operator>>(basic_istream<charT, traits>& is, bitset<N>& x); #include <bitset> #include <sstream> #include <cassert> int main() { std::ostringstream os; std::bitset<8> b(0x5A); os << b; assert(os.str() == "01011010"); } \ 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, size_t N>
+// basic_istream<charT, traits>&
+// operator>>(basic_istream<charT, traits>& is, bitset<N>& x);
+
+#include <bitset>
+#include <sstream>
+#include <cassert>
+
+int main()
+{
+ std::ostringstream os;
+ std::bitset<8> b(0x5A);
+ os << b;
+ assert(os.str() == "01011010");
+}
OpenPOWER on IntegriCloud