Merge pull request #591 from tbeu/fix-cpp-code-smells

Fix C++ code smells
This commit is contained in:
Emily Bache 2025-02-13 05:42:25 +00:00 committed by GitHub
commit afd4627ee1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 22 additions and 23 deletions

View File

@ -1,5 +1,7 @@
#include "GildedRose.h" #include "GildedRose.h"
using namespace std;
GildedRose::GildedRose(vector<Item> & items) : items(items) GildedRose::GildedRose(vector<Item> & items) : items(items)
{} {}

View File

@ -1,24 +1,23 @@
#pragma once
#include <string> #include <string>
#include <vector> #include <vector>
using namespace std;
class Item class Item
{ {
public: public:
string name; std::string name;
int sellIn; int sellIn;
int quality; int quality;
Item(string name, int sellIn, int quality) : name(name), sellIn(sellIn), quality(quality) Item(std::string name, int sellIn, int quality) : name(name), sellIn(sellIn), quality(quality)
{} {}
}; };
class GildedRose class GildedRose
{ {
public: public:
vector<Item> & items; std::vector<Item> & items;
GildedRose(vector<Item> & items); GildedRose(std::vector<Item> & items);
void updateQuality(); void updateQuality();
}; };

View File

@ -12,12 +12,12 @@ std::ostream& operator<<(std::ostream& os, const Item& obj)
TEST_CASE("GildedRoseApprovalTests", "VerifyCombinations") TEST_CASE("GildedRoseApprovalTests", "VerifyCombinations")
{ {
std::vector<string> names { "Foo" }; std::vector<std::string> names { "Foo" };
std::vector<int> sellIns { 1 }; std::vector<int> sellIns { 1 };
std::vector<int> qualities { 1 }; std::vector<int> qualities { 1 };
auto f = [](string name, int sellIn, int quality) { auto f = [](std::string name, int sellIn, int quality) {
vector<Item> items = {Item(name, sellIn, quality)}; std::vector<Item> items = {Item(name, sellIn, quality)};
GildedRose app(items); GildedRose app(items);
app.updateQuality(); app.updateQuality();
return items[0]; return items[0];

View File

@ -3,7 +3,7 @@
TEST_CASE("GildedRoseUnitTest", "Foo") TEST_CASE("GildedRoseUnitTest", "Foo")
{ {
vector<Item> items; std::vector<Item> items;
items.push_back(Item("Foo", 0, 0)); items.push_back(Item("Foo", 0, 0));
GildedRose app(items); GildedRose app(items);
app.updateQuality(); app.updateQuality();

View File

@ -12,12 +12,12 @@ std::ostream& operator<<(std::ostream& os, const Item& obj)
TEST(GildedRoseApprovalTests, VerifyCombinations) { TEST(GildedRoseApprovalTests, VerifyCombinations) {
std::vector<string> names { "Foo" }; std::vector<std::string> names { "Foo" };
std::vector<int> sellIns { 1 }; std::vector<int> sellIns { 1 };
std::vector<int> qualities { 1 }; std::vector<int> qualities { 1 };
auto f = [](string name, int sellIn, int quality) { auto f = [](std::string name, int sellIn, int quality) {
vector<Item> items = {Item(name, sellIn, quality)}; std::vector<Item> items = {Item(name, sellIn, quality)};
GildedRose app(items); GildedRose app(items);
app.updateQuality(); app.updateQuality();
return items[0]; return items[0];

View File

@ -2,7 +2,7 @@
#include "GildedRose.h" #include "GildedRose.h"
TEST(GildedRoseTest, Foo) { TEST(GildedRoseTest, Foo) {
vector<Item> items; std::vector<Item> items;
items.push_back(Item("Foo", 0, 0)); items.push_back(Item("Foo", 0, 0));
GildedRose app(items); GildedRose app(items);
app.updateQuality(); app.updateQuality();

View File

@ -3,12 +3,12 @@
void print_item(Item& item) void print_item(Item& item)
{ {
std::cout << item.name << ", " << item.sellIn << ", " << item.quality << std::endl; std::cout << item.name << ", " << item.sellIn << ", " << item.quality << '\n';
} }
int main() int main()
{ {
vector<Item> items; std::vector<Item> items;
items.push_back({"+5 Dexterity Vest", 10, 20}); items.push_back({"+5 Dexterity Vest", 10, 20});
items.push_back({"Aged Brie", 2, 0}); items.push_back({"Aged Brie", 2, 0});
@ -22,22 +22,20 @@ int main()
// this Conjured item doesn't yet work properly // this Conjured item doesn't yet work properly
items.push_back({"Conjured Mana Cake", 3, 6}); items.push_back({"Conjured Mana Cake", 3, 6});
std::cout << "OMGHAI!" << std::endl; std::cout << "OMGHAI!" << '\n';
GildedRose app(items); GildedRose app(items);
for (int day = 0; day <= 30; day++) for (int day = 0; day <= 30; day++)
{ {
std::cout << "-------- day " << day << " --------" << std::endl; std::cout << "-------- day " << day << " --------" << '\n';
std::cout << "name, sellIn, quality" << std::endl; std::cout << "name, sellIn, quality" << '\n';
for (auto& item : items) for (auto& item : items)
{ {
print_item(item); print_item(item);
} }
std::cout << std::endl; std::cout << '\n';
app.updateQuality(); app.updateQuality();
} }
return 0; return 0;
} }