Ver Fonte

Move IO tests into separate test file.

Sam Jaffe há 4 anos atrás
pai
commit
f2dc30bc86
4 ficheiros alterados com 76 adições e 56 exclusões
  1. 4 0
      dice-roll.xcodeproj/project.pbxproj
  2. 72 0
      test/io_test.cxx
  3. 0 35
      test/parser_test.cxx
  4. 0 21
      test/roll_test.cxx

+ 4 - 0
dice-roll.xcodeproj/project.pbxproj

@@ -25,6 +25,7 @@
 		CDEE78F725B336B000F195F9 /* parser.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CDEE78F625B336B000F195F9 /* parser.cxx */; };
 		CDEE790225B336EC00F195F9 /* io.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CDEE790125B336EC00F195F9 /* io.cxx */; };
 		CDEE7A6B25B34DAA00F195F9 /* die_test.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CDEE7A6A25B34DAA00F195F9 /* die_test.cxx */; };
+		CDEE7A7525B35EEC00F195F9 /* io_test.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CDEE7A7425B35EEC00F195F9 /* io_test.cxx */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -123,6 +124,7 @@
 		CDEE790125B336EC00F195F9 /* io.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = io.cxx; sourceTree = "<group>"; };
 		CDEE7A5925B3437D00F195F9 /* terminal_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terminal_helper.h; sourceTree = "<group>"; };
 		CDEE7A6A25B34DAA00F195F9 /* die_test.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = die_test.cxx; sourceTree = "<group>"; };
+		CDEE7A7425B35EEC00F195F9 /* io_test.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = io_test.cxx; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -243,6 +245,7 @@
 				CD38F53421C87799007A732C /* parser_test.cxx */,
 				CDEE7A6A25B34DAA00F195F9 /* die_test.cxx */,
 				CD38F53821C922E2007A732C /* roll_test.cxx */,
+				CDEE7A7425B35EEC00F195F9 /* io_test.cxx */,
 				CD38F53A21C928B4007A732C /* exception_test.cxx */,
 				CDEE78ED25B3350B00F195F9 /* xcode_gtest_helper.h */,
 			);
@@ -452,6 +455,7 @@
 				CD38F53B21C928B4007A732C /* exception_test.cxx in Sources */,
 				CD38F53921C922E2007A732C /* roll_test.cxx in Sources */,
 				CDEE7A6B25B34DAA00F195F9 /* die_test.cxx in Sources */,
+				CDEE7A7525B35EEC00F195F9 /* io_test.cxx in Sources */,
 				CD38F53521C87799007A732C /* parser_test.cxx in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;

+ 72 - 0
test/io_test.cxx

@@ -0,0 +1,72 @@
+//
+//  io_test.cxx
+//  dice-td
+//
+//  Created by Sam Jaffe on 1/16/21.
+//  Copyright © 2021 Sam Jaffe. All rights reserved.
+//
+
+#include <sstream>
+
+#include "xcode_gtest_helper.h"
+
+#include "dice-roll/die.h"
+#include "dice-roll/roll.h"
+
+using testing::Eq;
+
+TEST(DiceIOTest, StringFormIsExplicit) {
+  std::stringstream ss;
+  ss << dice::from_string("2{2d6-d4+5}");
+  EXPECT_THAT(ss.str(), Eq("2{2d6-1d4+5}"));
+}
+
+TEST(DiceIOTest, AllModifiersComeAtTheEnd) {
+  std::stringstream ss;
+  ss << dice::from_string("2d6-4-1d6+5");
+  EXPECT_THAT(ss.str(), Eq("2d6-1d6-4+5"));
+}
+
+TEST(DiceIOTest, StringFormDoesNotPreserveWhitespace) {
+  std::stringstream ss;
+  ss << dice::from_string("2 { d 4 + 5 }");
+  EXPECT_THAT(ss.str(), Eq("2{1d4+5}"));
+}
+
+TEST(DiceIOTest, CanReadDirectlyFromStream) {
+  std::stringstream in("2d6-4-1d6+5"), out;
+  dice::dice d;
+  in >> d;
+  out << d;
+  EXPECT_THAT(out.str(), Eq("2d6-1d6-4+5"));
+}
+
+TEST(DiceIOTest, PrintsOutDCMarker) {
+  std::string const tokens[] = { "<", "<=", ">", ">=" };
+  for (auto &tok : tokens) {
+    std::stringstream ss;
+    ss << dice::from_string("1d20" + tok + "10");
+    EXPECT_THAT(ss.str(), "1d20" + tok + "10");
+  }
+}
+
+TEST(RollIOTest, CanPrint0dN) {
+  dice::dice_roll roll{{{}}};
+  std::stringstream ss;
+  ss << roll;
+  EXPECT_THAT(ss.str(), Eq("0"));
+}
+
+TEST(RollIOTest, Prints1dNAsRollNumber) {
+  dice::dice_roll roll{{{dice::sign::ZERO, {3}}}};
+  std::stringstream ss;
+  ss << roll;
+  EXPECT_THAT(ss.str(), Eq("3"));
+}
+
+TEST(RollIOTest, PrintsNdMAsList) {
+  dice::dice_roll roll{{{dice::sign::ZERO, {3, 2, 4}}}};
+  std::stringstream ss;
+  ss << roll;
+  EXPECT_THAT(ss.str(), Eq("[ 3, 2, 4 ]"));
+}

+ 0 - 35
test/parser_test.cxx

@@ -141,38 +141,3 @@ TEST(ParserTest, DCIsCaptured) {
   EXPECT_THAT(dice::from_string("1d20>10").dc.comp, test::Greater);
   EXPECT_THAT(dice::from_string("1d20>=10").dc.comp, test::GreaterOrEqual);
 }
-
-TEST(DiceIOTest, StringFormIsExplicit) {
-  std::stringstream ss;
-  ss << dice::from_string("2{2d6-d4+5}");
-  EXPECT_THAT(ss.str(), Eq("2{2d6-1d4+5}"));
-}
-
-TEST(DiceIOTest, AllModifiersComeAtTheEnd) {
-  std::stringstream ss;
-  ss << dice::from_string("2d6-4-1d6+5");
-  EXPECT_THAT(ss.str(), Eq("2d6-1d6-4+5"));
-}
-
-TEST(DiceIOTest, StringFormDoesNotPreserveWhitespace) {
-  std::stringstream ss;
-  ss << dice::from_string("2 { d 4 + 5 }");
-  EXPECT_THAT(ss.str(), Eq("2{1d4+5}"));
-}
-
-TEST(DiceIOTest, CanReadDirectlyFromStream) {
-  std::stringstream in("2d6-4-1d6+5"), out;
-  dice::dice d;
-  in >> d;
-  out << d;
-  EXPECT_THAT(out.str(), Eq("2d6-1d6-4+5"));
-}
-
-TEST(DiceIOTest, PrintsOutDCMarker) {
-  std::string const tokens[] = { "<", "<=", ">", ">=" };
-  for (auto &tok : tokens) {
-    std::stringstream ss;
-    ss << dice::from_string("1d20" + tok + "10");
-    EXPECT_THAT(ss.str(), "1d20" + tok + "10");
-  }
-}

+ 0 - 21
test/roll_test.cxx

@@ -71,24 +71,3 @@ TEST_F(RollTest, OperatorInSumsElements) {
   // 3 + 2 + 4 + 1 = 10
   EXPECT_THAT(int(roll[0]), Eq(10));
 }
-
-TEST(RollSerialTest, CanPrint0dN) {
-  dice::dice_roll roll{{{}}};
-  std::stringstream ss;
-  ss << roll;
-  EXPECT_THAT(ss.str(), Eq("0"));
-}
-
-TEST(RollSerialTest, Prints1dNAsRollNumber) {
-  dice::dice_roll roll{{{dice::sign::ZERO, {3}}}};
-  std::stringstream ss;
-  ss << roll;
-  EXPECT_THAT(ss.str(), Eq("3"));
-}
-
-TEST(RollSerialTest, PrintsNdMAsList) {
-  dice::dice_roll roll{{{dice::sign::ZERO, {3, 2, 4}}}};
-  std::stringstream ss;
-  ss << roll;
-  EXPECT_THAT(ss.str(), Eq("[ 3, 2, 4 ]"));
-}