From 00ea1826d82d2a1e69869c02e2b4bea4651284c3 Mon Sep 17 00:00:00 2001 From: yattom Date: Tue, 3 Sep 2024 09:55:11 +0900 Subject: [PATCH] restart C++ GoogleTest VS2022 --- .../C++_GoogleTest_VisualStudio2022/Range.cpp | 25 ------- .../C++_GoogleTest_VisualStudio2022/Range.h | 44 ------------- .../range_test.cpp | 66 ------------------- .../C++_GoogleTest_VisualStudio2022/todo.md | 14 ---- 4 files changed, 149 deletions(-) diff --git a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.cpp b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.cpp index 4982b7d..261d5bd 100644 --- a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.cpp +++ b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.cpp @@ -1,29 +1,4 @@ #include "pch.h" #include "Range.h" -Range::Range(int lower, int upper) : lower(lower), upper(upper) -{ - if (lower > upper) { - throw std::invalid_argument("lower must be less than upper"); - } -} -int Range::getLower() -{ - return this->lower; -} - -int Range::getUpper() -{ - return this->upper; -} - -std::string Range::toString() -{ - return "[" + std::to_string(this->lower) + "," + std::to_string(this->upper) + "]"; -} - -bool Range::contains(Range other) -{ - return (lower <= other.lower && other.lower <= upper) && (lower <= other.upper && other.upper <= upper); -} diff --git a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.h b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.h index 7792260..531a62b 100644 --- a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.h +++ b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/Range.h @@ -1,48 +1,4 @@ #pragma once -#include -class Range -{ -private: - int lower; - int upper; - -public: - Range(int lower, int upper); - - int getLower(); - int getUpper(); - std::string toString(); - bool contains(Range other); -}; - -class RangeBuilder { -private: - int m_lower; - int m_upper; - -public: - RangeBuilder() : m_lower(0), m_upper(0) - { - - } - - RangeBuilder& lower(int lower) - { - this->m_lower = lower; - return *this; - } - - RangeBuilder& upper(int upper) - { - this->m_upper = upper; - return *this; - } - - Range build() - { - return Range(m_lower, m_upper); - } -}; diff --git a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/range_test.cpp b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/range_test.cpp index 044900d..ec4f811 100644 --- a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/range_test.cpp +++ b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/range_test.cpp @@ -1,68 +1,2 @@ #include "pch.h" #include "Range.h" - -namespace 整数閉区間オブジェクト { - - TEST(オブジェクト生成, 下端点と上端点を持つ) { - Range sut = Range(3, 8); - const auto lower = sut.getLower(); - const auto upper = sut.getUpper(); - EXPECT_EQ(3, lower); - EXPECT_EQ(8, upper); - } - - TEST(オブジェクト生成, ビルダーっぽく初期化する) { - Range sut = RangeBuilder().lower(3).upper(8).build(); - const auto lower = sut.getLower(); - const auto upper = sut.getUpper(); - EXPECT_EQ(3, lower); - EXPECT_EQ(8, upper); - } - TEST(オブジェクト生成, 不正_上端点より下端点が大きい閉区間を作ることはできない) { - EXPECT_THROW(Range(8, 3), std::invalid_argument); - } - - TEST(文字列表現, 3と8の場合) { - Range sut = RangeBuilder().lower(3).upper(8).build(); - EXPECT_EQ("[3,8]", sut.toString()); - } - - TEST(文字列表現, マイナス2と10の場合) { - Range sut = RangeBuilder().lower(-2).upper(10).build(); - EXPECT_EQ("[-2,10]", sut.toString()); - } - - TEST(別の閉区間を完全に含むかどうかを判定できる, 両端点を含む) { - Range r3_8 = RangeBuilder().lower(3).upper(8).build(); - Range r4_5 = RangeBuilder().lower(4).upper(5).build(); - EXPECT_TRUE(r3_8.contains(r4_5)); - } - - TEST(別の閉区間を完全に含むかどうかを判定できる, 網羅的なテスト) { - // this(L--U)に対してother(l--u)がどこに位置するかのパターン - // .....L------U.... - // l--u.:......:.... - // l----u......:.... - // l----=---u..:.... - // l----=------u.... - // l----=------=---u - // .....l---u..:.... - // .....l------u.... - // .....:..l---u.... - // .....:..l---=---u - // .....:......l---u - // .....:......:.l-u - Range r3_8 = RangeBuilder().lower(3).upper(8).build(); - EXPECT_FALSE(r3_8.contains(Range(1, 2))); - EXPECT_FALSE(r3_8.contains(Range(1, 3))); - EXPECT_FALSE(r3_8.contains(Range(1, 5))); - EXPECT_FALSE(r3_8.contains(Range(1, 8))); - EXPECT_FALSE(r3_8.contains(Range(1, 10))); - EXPECT_TRUE(r3_8.contains(Range(3, 5))); - EXPECT_TRUE(r3_8.contains(Range(3, 8))); - EXPECT_TRUE(r3_8.contains(Range(5, 8))); - EXPECT_FALSE(r3_8.contains(Range(5, 10))); - EXPECT_FALSE(r3_8.contains(Range(8, 10))); - EXPECT_FALSE(r3_8.contains(Range(9, 10))); - } -} \ No newline at end of file diff --git a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/todo.md b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/todo.md index ae7c5a3..b28b04f 100644 --- a/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/todo.md +++ b/C++_GoogleTest_VisualStudio2022/C++_GoogleTest_VisualStudio2022/todo.md @@ -1,17 +1,3 @@ -# 問題文 -整数閉区間を示すクラス(あるいは構造体)をつくりたい。整数閉区間オブジェクトは下端点と上端点を持ち、文字列表現も返せる(例: 下端点 3, 上端点 8 の整数閉区間の文字列表記は "[3,8]")。ただし、上端点より下端点が大きい閉区間を作ることはできない。整数の閉区間は指定した整数を含むかどうかを判定できる。また、別の閉区間と等価かどうかや、完全に含むかどうかも判定できる。 - -# TODOリスト -- [ ] 整数閉区間を示すクラスをつくる - - [x] 整数閉区間オブジェクトは下端点と上端点を持つ - - [x]ただし、上端点より下端点が大きい閉区間を作ることはできない。 - - [x] 整数閉区間オブジェクトは文字列表現も返せる - - 例: 下端点 3, 上端点 8 の整数閉区間の文字列表記は "[3,8]" - - [ ] 整数閉区間は別の閉区間を完全に含むかどうかを判定できる - - [ ] 各端点を含むかで実装 - - [ ] パターン洗い出して網羅的にテスト - - [ ] 整数閉区間は指定した整数を含むかどうかを判定できる - - [ ] 整数閉区間は別の閉区間と等価かどうかを判定できる