Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / tests / unit / inference_engine_tests / range_iterator_tests.cpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <gtest/gtest.h>
6 #include <locale>
7 #include "range_iterator.hpp"
8 #include <cctype>
9
10 using namespace std;
11 using namespace InferenceEngine;
12
13 class RangeIteratorTests: public ::testing::Test {
14  protected:
15     virtual void TearDown() {
16     }
17
18     virtual void SetUp() {
19     }
20
21  public:
22
23 };
24
25 TEST_F(RangeIteratorTests, canCompareSameStringsInsensitive) {
26     ASSERT_FALSE(std::lexicographical_compare(null_terminated_string("UPPer"),
27                                              null_terminated_string_end(),
28                                              null_terminated_string("upper"),
29                                              null_terminated_string_end(), [](char a, char b) {
30             std::locale loc;
31             return std::tolower(a, loc) > std::tolower(b, loc);
32         }));
33 }
34
35 TEST_F(RangeIteratorTests, canCompareNotSameStringsInsensitive) {
36     ASSERT_TRUE(std::lexicographical_compare(null_terminated_string("UPPer"),
37                                          null_terminated_string_end(),
38                                          null_terminated_string("uppel"),
39                                          null_terminated_string_end(), [](char a, char b) {
40         std::locale loc;
41         return std::tolower(a, loc) > std::tolower(b, loc);
42     }));
43     
44 }
45
46 TEST_F(RangeIteratorTests, cannotDereferenceEndIterator) {
47     ASSERT_ANY_THROW(*null_terminated_string_end());
48     ASSERT_ANY_THROW(++null_terminated_string_end());
49     ASSERT_ANY_THROW(null_terminated_string_end()++);
50 }