Home | History | Annotate | Download | only in tests
      1 ///////////////////////////////////////////////////////////////////////////////
      2 //
      3 // Copyright (c) 2015 Microsoft Corporation. All rights reserved.
      4 //
      5 // This code is licensed under the MIT License (MIT).
      6 //
      7 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      8 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      9 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     10 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     11 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     12 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     13 // THE SOFTWARE.
     14 //
     15 ///////////////////////////////////////////////////////////////////////////////
     16 
     17 #include <UnitTest++/UnitTest++.h>
     18 #include <gsl/gsl>
     19 #include <vector>
     20 #include <initializer_list>
     21 
     22 using namespace std;
     23 using namespace gsl;
     24 
     25 SUITE(at_tests)
     26 {
     27     TEST(static_array)
     28     {
     29         int a[] = { 1, 2, 3, 4 };
     30 
     31         for (int i = 0; i < 4; ++i)
     32             CHECK(at(a, i) == i+1);
     33 
     34         CHECK_THROW(at(a, 4), fail_fast);
     35     }
     36 
     37     TEST(std_array)
     38     {
     39         std::array<int,4> a = { 1, 2, 3, 4 };
     40 
     41         for (int i = 0; i < 4; ++i)
     42             CHECK(at(a, i) == i+1);
     43 
     44         CHECK_THROW(at(a, 4), fail_fast);
     45     }
     46 
     47     TEST(StdVector)
     48     {
     49         std::vector<int> a = { 1, 2, 3, 4 };
     50 
     51         for (int i = 0; i < 4; ++i)
     52             CHECK(at(a, i) == i+1);
     53 
     54         CHECK_THROW(at(a, 4), fail_fast);
     55     }
     56 
     57     TEST(InitializerList)
     58     {
     59         std::initializer_list<int> a = { 1, 2, 3, 4 };
     60 
     61         for (int i = 0; i < 4; ++i)
     62             CHECK(at(a, i) == i+1);
     63 
     64         CHECK_THROW(at(a, 4), fail_fast);
     65     }
     66 }
     67 
     68 int main(int, const char *[])
     69 {
     70     return UnitTest::RunAllTests();
     71 }
     72