xref: /llvm-project/llvm/unittests/Testing/ADT/StringMapTest.cpp (revision d45c04da7cc5fd093f611c311d3b34b0ef408165)
1*d45c04daSWei Yi Tee //===- StringMapTest.cpp --------------------------------------------------===//
2*d45c04daSWei Yi Tee //
3*d45c04daSWei Yi Tee // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*d45c04daSWei Yi Tee // See https://llvm.org/LICENSE.txt for license information.
5*d45c04daSWei Yi Tee // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*d45c04daSWei Yi Tee //
7*d45c04daSWei Yi Tee //===----------------------------------------------------------------------===//
8*d45c04daSWei Yi Tee 
9*d45c04daSWei Yi Tee #include "llvm/Testing/ADT/StringMap.h"
10*d45c04daSWei Yi Tee #include "llvm/ADT/StringMap.h"
11*d45c04daSWei Yi Tee 
12*d45c04daSWei Yi Tee #include "gtest/gtest.h"
13*d45c04daSWei Yi Tee #include <sstream>
14*d45c04daSWei Yi Tee 
15*d45c04daSWei Yi Tee namespace llvm {
16*d45c04daSWei Yi Tee namespace {
17*d45c04daSWei Yi Tee 
TEST(StringMapTest,StringMapStream)18*d45c04daSWei Yi Tee TEST(StringMapTest, StringMapStream) {
19*d45c04daSWei Yi Tee   std::ostringstream OS;
20*d45c04daSWei Yi Tee   StringMap<int> Map;
21*d45c04daSWei Yi Tee   Map["A"] = 42;
22*d45c04daSWei Yi Tee   Map["Z"] = 35;
23*d45c04daSWei Yi Tee   Map["B"] = 7;
24*d45c04daSWei Yi Tee   OS << Map;
25*d45c04daSWei Yi Tee 
26*d45c04daSWei Yi Tee   EXPECT_EQ(OS.str(), R"({
27*d45c04daSWei Yi Tee {"A": 42},
28*d45c04daSWei Yi Tee {"B": 7},
29*d45c04daSWei Yi Tee {"Z": 35},
30*d45c04daSWei Yi Tee })");
31*d45c04daSWei Yi Tee }
32*d45c04daSWei Yi Tee 
TEST(StringMapTest,NestedStringMapStream)33*d45c04daSWei Yi Tee TEST(StringMapTest, NestedStringMapStream) {
34*d45c04daSWei Yi Tee   std::ostringstream OS;
35*d45c04daSWei Yi Tee   StringMap<StringMap<int>> Map;
36*d45c04daSWei Yi Tee   Map["Z"];
37*d45c04daSWei Yi Tee   Map["A"]["Apple"] = 5;
38*d45c04daSWei Yi Tee   Map["B"]["Bee"] = 3;
39*d45c04daSWei Yi Tee   Map["A"]["Axe"] = 3;
40*d45c04daSWei Yi Tee   OS << Map;
41*d45c04daSWei Yi Tee 
42*d45c04daSWei Yi Tee   EXPECT_EQ(OS.str(), R"({
43*d45c04daSWei Yi Tee {"A": {
44*d45c04daSWei Yi Tee {"Apple": 5},
45*d45c04daSWei Yi Tee {"Axe": 3},
46*d45c04daSWei Yi Tee }},
47*d45c04daSWei Yi Tee {"B": {
48*d45c04daSWei Yi Tee {"Bee": 3},
49*d45c04daSWei Yi Tee }},
50*d45c04daSWei Yi Tee {"Z": { }},
51*d45c04daSWei Yi Tee })");
52*d45c04daSWei Yi Tee }
53*d45c04daSWei Yi Tee 
54*d45c04daSWei Yi Tee } // namespace
55*d45c04daSWei Yi Tee } // namespace llvm
56