From 002a98494836085a3c84e2e844147468d4d39cc7 Mon Sep 17 00:00:00 2001
From: Marshall Clow <mclow@qualcomm.com>
Date: Thu, 3 Jan 2013 01:45:09 +0000
Subject: [PATCH] Removed 7 (of 8) different 'iterators.h' files in
 test/localization

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@171443 91177308-0d34-0410-b5e6-96231b3b80d8
---
 .../facet.num.get.members => }/iterators.h    | 27 +++++++++
 .../get_long_double_en_US.pass.cpp            |  2 +-
 .../get_long_double_fr_FR.pass.cpp            |  2 +-
 .../get_long_double_ru_RU.pass.cpp            |  2 +-
 .../get_long_double_zh_CN.pass.cpp            |  2 +-
 .../get_string_en_US.pass.cpp                 |  2 +-
 .../locale.money.get.members/iterators.h      | 55 -------------------
 .../locale.money.put.members/iterators.h      | 33 -----------
 .../put_long_double_en_US.pass.cpp            |  2 +-
 .../put_long_double_fr_FR.pass.cpp            |  2 +-
 .../put_long_double_ru_RU.pass.cpp            |  2 +-
 .../put_long_double_zh_CN.pass.cpp            |  2 +-
 .../put_string_en_US.pass.cpp                 |  2 +-
 .../facet.num.put.members/iterators.h         | 33 -----------
 .../facet.num.put.members/put_bool.pass.cpp   |  2 +-
 .../facet.num.put.members/put_double.pass.cpp |  2 +-
 .../facet.num.put.members/put_long.pass.cpp   |  2 +-
 .../put_long_double.pass.cpp                  |  2 +-
 .../put_long_long.pass.cpp                    |  2 +-
 .../put_pointer.pass.cpp                      |  2 +-
 .../put_unsigned_long.pass.cpp                |  2 +-
 .../put_unsigned_long_long.pass.cpp           |  2 +-
 .../facet.num.get.members/get_bool.pass.cpp   |  2 +-
 .../facet.num.get.members/get_double.pass.cpp |  2 +-
 .../facet.num.get.members/get_float.pass.cpp  |  2 +-
 .../facet.num.get.members/get_long.pass.cpp   |  2 +-
 .../get_long_double.pass.cpp                  |  2 +-
 .../get_long_long.pass.cpp                    |  2 +-
 .../get_pointer.pass.cpp                      |  2 +-
 .../get_unsigned_int.pass.cpp                 |  2 +-
 .../get_unsigned_long.pass.cpp                |  2 +-
 .../get_unsigned_long_long.pass.cpp           |  2 +-
 .../get_unsigned_short.pass.cpp               |  2 +-
 .../date_order.pass.cpp                       |  2 +-
 .../date_order_wide.pass.cpp                  |  2 +-
 .../locale.time.get.byname/get_date.pass.cpp  |  2 +-
 .../get_date_wide.pass.cpp                    |  2 +-
 .../get_monthname.pass.cpp                    |  2 +-
 .../get_monthname_wide.pass.cpp               |  2 +-
 .../locale.time.get.byname/get_one.pass.cpp   |  2 +-
 .../get_one_wide.pass.cpp                     |  2 +-
 .../locale.time.get.byname/get_time.pass.cpp  |  2 +-
 .../get_time_wide.pass.cpp                    |  2 +-
 .../get_weekday.pass.cpp                      |  2 +-
 .../get_weekday_wide.pass.cpp                 |  2 +-
 .../locale.time.get.byname/get_year.pass.cpp  |  2 +-
 .../get_year_wide.pass.cpp                    |  2 +-
 .../locale.time.get.byname/iterators.h        | 55 -------------------
 .../date_order.pass.cpp                       |  2 +-
 .../locale.time.get.members/get_date.pass.cpp |  2 +-
 .../get_date_wide.pass.cpp                    |  2 +-
 .../locale.time.get.members/get_many.pass.cpp |  2 +-
 .../get_monthname.pass.cpp                    |  2 +-
 .../get_monthname_wide.pass.cpp               |  2 +-
 .../locale.time.get.members/get_one.pass.cpp  |  2 +-
 .../locale.time.get.members/get_time.pass.cpp |  2 +-
 .../get_time_wide.pass.cpp                    |  2 +-
 .../get_weekday.pass.cpp                      |  2 +-
 .../get_weekday_wide.pass.cpp                 |  2 +-
 .../locale.time.get.members/get_year.pass.cpp |  2 +-
 .../locale.time.get.members/iterators.h       | 55 -------------------
 .../locale.time.put.byname/iterators.h        | 33 -----------
 .../locale.time.put.byname/put1.pass.cpp      |  2 +-
 .../locale.time.put.members/iterators.h       | 33 -----------
 .../locale.time.put.members/put1.pass.cpp     |  2 +-
 .../locale.time.put.members/put2.pass.cpp     |  2 +-
 66 files changed, 85 insertions(+), 355 deletions(-)
 rename test/localization/{locale.categories/category.numeric/locale.num.get/facet.num.get.members => }/iterators.h (89%)
 delete mode 100644 test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/iterators.h
 delete mode 100644 test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/iterators.h
 delete mode 100644 test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/iterators.h
 delete mode 100644 test/localization/locale.categories/category.time/locale.time.get.byname/iterators.h
 delete mode 100644 test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/iterators.h
 delete mode 100644 test/localization/locale.categories/category.time/locale.time.put.byname/iterators.h
 delete mode 100644 test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/iterators.h

diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/iterators.h b/test/localization/iterators.h
similarity index 89%
rename from test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/iterators.h
rename to test/localization/iterators.h
index bbdeede9..167ed0bb 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/iterators.h
+++ b/test/localization/iterators.h
@@ -3,6 +3,33 @@
 
 #include <iterator>
 
+template <class It>
+class output_iterator
+{
+    It it_;
+
+    template <class U> friend class output_iterator;
+public:
+    typedef          std::output_iterator_tag                  iterator_category;
+    typedef typename std::iterator_traits<It>::value_type      value_type;
+    typedef typename std::iterator_traits<It>::difference_type difference_type;
+    typedef It                                                 pointer;
+    typedef typename std::iterator_traits<It>::reference       reference;
+
+    It base() const {return it_;}
+
+    output_iterator () {}
+    explicit output_iterator(It it) : it_(it) {}
+    template <class U>
+        output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
+
+    reference operator*() const {return *it_;}
+
+    output_iterator& operator++() {++it_; return *this;}
+    output_iterator operator++(int)
+        {output_iterator tmp(*this); ++(*this); return tmp;}
+};
+
 template <class It>
 class input_iterator
 {
diff --git a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
index 2340336c..c4337844 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
index 469fcdf9..b71d0919 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
index 09d2d5b0..f135bdd5 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
index 3a009734..3c6f84aa 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp
index 3ec5c57a..4c75b08b 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/iterators.h b/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/iterators.h
deleted file mode 100644
index 7b0f6338..00000000
--- a/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/iterators.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class input_iterator
-{
-    It it_;
-
-    template <class U> friend class input_iterator;
-public:
-    typedef          std::input_iterator_tag                   iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    input_iterator() : it_() {}
-    explicit input_iterator(It it) : it_(it) {}
-    template <class U>
-        input_iterator(const input_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-    pointer operator->() const {return it_;}
-
-    input_iterator& operator++() {++it_; return *this;}
-    input_iterator operator++(int)
-        {input_iterator tmp(*this); ++(*this); return tmp;}
-
-    friend bool operator==(const input_iterator& x, const input_iterator& y)
-        {return x.it_ == y.it_;}
-    friend bool operator!=(const input_iterator& x, const input_iterator& y)
-        {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const input_iterator<T>& x, const input_iterator<U>& y)
-{
-    return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const input_iterator<T>& x, const input_iterator<U>& y)
-{
-    return !(x == y);
-}
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/iterators.h b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/iterators.h
deleted file mode 100644
index fa6e1004..00000000
--- a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/iterators.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class output_iterator
-{
-    It it_;
-
-    template <class U> friend class output_iterator;
-public:
-    typedef          std::output_iterator_tag                  iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    output_iterator() : it_() {}
-    explicit output_iterator(It it) : it_(it) {}
-    template <class U>
-        output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-
-    output_iterator& operator++() {++it_; return *this;}
-    output_iterator operator++(int)
-        {output_iterator tmp(*this); ++(*this); return tmp;}
-};
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_en_US.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_en_US.pass.cpp
index e6672880..a96ad895 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_en_US.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_en_US.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
index 021bec9a..0f92975b 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
index 0e593e61..ca9adbdc 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
index 5cf4b526..8a1304eb 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp
index 30f0b2d6..890843b0 100644
--- a/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp
+++ b/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <streambuf>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 #include "../../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/iterators.h b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/iterators.h
deleted file mode 100644
index fa6e1004..00000000
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/iterators.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class output_iterator
-{
-    It it_;
-
-    template <class U> friend class output_iterator;
-public:
-    typedef          std::output_iterator_tag                  iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    output_iterator() : it_() {}
-    explicit output_iterator(It it) : it_(it) {}
-    template <class U>
-        output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-
-    output_iterator& operator++() {++it_; return *this;}
-    output_iterator operator++(int)
-        {output_iterator tmp(*this); ++(*this); return tmp;}
-};
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
index cac1802e..6b15e6c5 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_bool.pass.cpp
@@ -17,7 +17,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
index 3428692b..d3d63410 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
@@ -18,7 +18,7 @@
 #include <cassert>
 #include <streambuf>
 #include <cmath>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
index def43915..f6a5368f 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long.pass.cpp
@@ -17,7 +17,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
index e27f4986..dc3624c8 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
@@ -18,7 +18,7 @@
 #include <cassert>
 #include <streambuf>
 #include <cmath>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
index 1ee1bfd0..4f1f353a 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_long.pass.cpp
@@ -17,7 +17,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
index 3303db96..47207e6a 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
@@ -17,7 +17,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
index 57fb2261..c5503f67 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
@@ -17,7 +17,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
index ed1b25c7..dce04d03 100644
--- a/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
@@ -17,7 +17,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_bool.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_bool.pass.cpp
index ea966234..849d71d8 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_bool.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_bool.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp
index 2df395cd..cdf512ad 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp
@@ -19,7 +19,7 @@
 #include <cassert>
 #include <streambuf>
 #include <cmath>
-#include "iterators.h"
+#include "../../../../iterators.h"
 #include "../../../../../hexfloat.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_float.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_float.pass.cpp
index c61dcdaf..26736d4a 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_float.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_float.pass.cpp
@@ -19,7 +19,7 @@
 #include <cassert>
 #include <streambuf>
 #include <cmath>
-#include "iterators.h"
+#include "../../../../iterators.h"
 #include "../../../../../hexfloat.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long.pass.cpp
index 8fcaaa4f..861f7875 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_double.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_double.pass.cpp
index d39ba0ac..5c2711bb 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_double.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_double.pass.cpp
@@ -19,7 +19,7 @@
 #include <cassert>
 #include <streambuf>
 #include <cmath>
-#include "iterators.h"
+#include "../../../../iterators.h"
 #include "../../../../../hexfloat.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_long.pass.cpp
index 520ae0fb..6182a8f7 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_long.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_pointer.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_pointer.pass.cpp
index d4a9b811..77203969 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_pointer.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_pointer.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_int.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_int.pass.cpp
index 327000a6..3b2ef52c 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_int.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_int.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long.pass.cpp
index b3f74a9c..a97cb0f7 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long_long.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long_long.pass.cpp
index f6ba0b15..7fb9b9dd 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long_long.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_long_long.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_short.pass.cpp b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_short.pass.cpp
index f7bb8c3c..fffbf5b0 100644
--- a/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_short.pass.cpp
+++ b/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_unsigned_short.pass.cpp
@@ -18,7 +18,7 @@
 #include <ios>
 #include <cassert>
 #include <streambuf>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::num_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp
index b6d7d09d..9d1b46d2 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp
@@ -15,7 +15,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
index 9f8e8ad0..e52dacdc 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
@@ -15,7 +15,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
index 84ff3c9f..c7cc225d 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
index 68c148fe..e9b4bfe5 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
index 5d7bafb2..e29e857a 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
index 6909123c..be57cd15 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
index 07d36c83..d1958c31 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
index 2d5b9412..c2b0f8b1 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
index 425fa399..4a55cbef 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
index 6cf2abb5..d2d3f4e7 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
index fb50ae83..faf2aa86 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
index 169b1920..7d9fb227 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
index 54611043..34eb1ef0 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
index 0361bb03..83d26938 100644
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get.byname/iterators.h b/test/localization/locale.categories/category.time/locale.time.get.byname/iterators.h
deleted file mode 100644
index 7b0f6338..00000000
--- a/test/localization/locale.categories/category.time/locale.time.get.byname/iterators.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class input_iterator
-{
-    It it_;
-
-    template <class U> friend class input_iterator;
-public:
-    typedef          std::input_iterator_tag                   iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    input_iterator() : it_() {}
-    explicit input_iterator(It it) : it_(it) {}
-    template <class U>
-        input_iterator(const input_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-    pointer operator->() const {return it_;}
-
-    input_iterator& operator++() {++it_; return *this;}
-    input_iterator operator++(int)
-        {input_iterator tmp(*this); ++(*this); return tmp;}
-
-    friend bool operator==(const input_iterator& x, const input_iterator& y)
-        {return x.it_ == y.it_;}
-    friend bool operator!=(const input_iterator& x, const input_iterator& y)
-        {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const input_iterator<T>& x, const input_iterator<U>& y)
-{
-    return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const input_iterator<T>& x, const input_iterator<U>& y)
-{
-    return !(x == y);
-}
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/date_order.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/date_order.pass.cpp
index 4def37cb..077f7a89 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/date_order.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/date_order.pass.cpp
@@ -15,7 +15,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::time_get<char, input_iterator<const char*> > F;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date.pass.cpp
index 8378ebdb..7d7e9e39 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date_wide.pass.cpp
index 2b4b8877..5daeac94 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const wchar_t*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_many.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_many.pass.cpp
index 823c581b..c5da966d 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_many.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_many.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp
index 30d32b07..e023c917 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
index a0dc0a0e..610a60c9 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const wchar_t*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp
index 65ab1b17..0649be59 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp
index ea90c44c..52fd6936 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
index dee08416..1c361794 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const wchar_t*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp
index 5c412eaf..2cf78fee 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
index 7377421f..0f11131e 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
@@ -17,7 +17,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const wchar_t*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_year.pass.cpp b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_year.pass.cpp
index bc487bb5..7a6753ad 100644
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_year.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_year.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef input_iterator<const char*> I;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/iterators.h b/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/iterators.h
deleted file mode 100644
index 7b0f6338..00000000
--- a/test/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/iterators.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class input_iterator
-{
-    It it_;
-
-    template <class U> friend class input_iterator;
-public:
-    typedef          std::input_iterator_tag                   iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    input_iterator() : it_() {}
-    explicit input_iterator(It it) : it_(it) {}
-    template <class U>
-        input_iterator(const input_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-    pointer operator->() const {return it_;}
-
-    input_iterator& operator++() {++it_; return *this;}
-    input_iterator operator++(int)
-        {input_iterator tmp(*this); ++(*this); return tmp;}
-
-    friend bool operator==(const input_iterator& x, const input_iterator& y)
-        {return x.it_ == y.it_;}
-    friend bool operator!=(const input_iterator& x, const input_iterator& y)
-        {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const input_iterator<T>& x, const input_iterator<U>& y)
-{
-    return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const input_iterator<T>& x, const input_iterator<U>& y)
-{
-    return !(x == y);
-}
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.time/locale.time.put.byname/iterators.h b/test/localization/locale.categories/category.time/locale.time.put.byname/iterators.h
deleted file mode 100644
index fa6e1004..00000000
--- a/test/localization/locale.categories/category.time/locale.time.put.byname/iterators.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class output_iterator
-{
-    It it_;
-
-    template <class U> friend class output_iterator;
-public:
-    typedef          std::output_iterator_tag                  iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    output_iterator() : it_() {}
-    explicit output_iterator(It it) : it_(it) {}
-    template <class U>
-        output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-
-    output_iterator& operator++() {++it_; return *this;}
-    output_iterator operator++(int)
-        {output_iterator tmp(*this); ++(*this); return tmp;}
-};
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp b/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
index 00334616..585f8f22 100644
--- a/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
@@ -23,7 +23,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../iterators.h"
 
 #include "../../../../platform_support.h" // locale name macros
 
diff --git a/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/iterators.h b/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/iterators.h
deleted file mode 100644
index fa6e1004..00000000
--- a/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/iterators.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class output_iterator
-{
-    It it_;
-
-    template <class U> friend class output_iterator;
-public:
-    typedef          std::output_iterator_tag                  iterator_category;
-    typedef typename std::iterator_traits<It>::value_type      value_type;
-    typedef typename std::iterator_traits<It>::difference_type difference_type;
-    typedef It                                                 pointer;
-    typedef typename std::iterator_traits<It>::reference       reference;
-
-    It base() const {return it_;}
-
-    output_iterator() : it_() {}
-    explicit output_iterator(It it) : it_(it) {}
-    template <class U>
-        output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
-
-    reference operator*() const {return *it_;}
-
-    output_iterator& operator++() {++it_; return *this;}
-    output_iterator operator++(int)
-        {output_iterator tmp(*this); ++(*this); return tmp;}
-};
-
-#endif  // ITERATORS_H
diff --git a/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp b/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
index 81727604..bfd938ea 100644
--- a/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::time_put<char, output_iterator<char*> > F;
 
diff --git a/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp b/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
index 1fc5022d..2b119bd9 100644
--- a/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
+++ b/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp
@@ -16,7 +16,7 @@
 
 #include <locale>
 #include <cassert>
-#include "iterators.h"
+#include "../../../../iterators.h"
 
 typedef std::time_put<char, output_iterator<char*> > F;