From 2234eeacaf0992c53607456aa29cf927a5a3d360 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 18:57:39 -0400 Subject: [PATCH 01/14] test: write testcase for Square::Square(int idx_) --- test/Square.cxxtest.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 8ef3f56..682730d 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -8,6 +8,11 @@ class TestSquare : public CxxTest::TestSuite { TS_ASSERT_EQUALS(basicSquare.rank(), 0); TS_ASSERT_EQUALS(basicSquare.file(), 0); } + void testIndexConstructor() { + Square s = Square(18); + TS_ASSERT_EQUALS(s.rank(), 1); + TS_ASSERT_EQUALS(s.file(), 2); + } void testConstructor() { Square sq3 = Square(3, 8); TS_ASSERT_EQUALS(sq3.file(), 3); From 87f17af81e7c9b404480ede72eb82595a54908b0 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:01:44 -0400 Subject: [PATCH 02/14] style: reorganize test/Square.cxxtest.hpp testcases into constructors, operators, and methods --- test/Square.cxxtest.hpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 682730d..1766d75 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -3,6 +3,7 @@ class TestSquare : public CxxTest::TestSuite { public: + // testing constructors void testDefaultConstructor() { Square basicSquare = Square(); TS_ASSERT_EQUALS(basicSquare.rank(), 0); @@ -18,6 +19,8 @@ class TestSquare : public CxxTest::TestSuite { TS_ASSERT_EQUALS(sq3.file(), 3); TS_ASSERT_EQUALS(sq3.rank(), 8); } + + // testing operators void testAdd() { Square sq3 = Square(3, 8) + Offset(2, -1); TS_ASSERT_EQUALS(sq3, Square(3 + (-1), 8 + 2)); @@ -38,12 +41,14 @@ class TestSquare : public CxxTest::TestSuite { TS_ASSERT(Square(3, 7) < Square(3, 8)); TS_ASSERT(!(Square(4, 8) < Square(3, 1))); } - void testToString() { - Square s = Square(3, 5); - TS_ASSERT_EQUALS(s.toString(), "d6"); - } void testSubtract() { int s = Square(1, 2) - Square(1, 2); TS_ASSERT_EQUALS(s, Offset(1 - 1, 2 - 2)); } + + // testing methods + void testToString() { + Square s = Square(3, 5); + TS_ASSERT_EQUALS(s.toString(), "d6"); + } }; From 2b17e97923fc5c2c920ddafbf2973ed6b7d19c8f Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:03:51 -0400 Subject: [PATCH 03/14] test: add testcase for Square::Square(const std::string_view &s) --- test/Square.cxxtest.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 1766d75..de0cd84 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -19,6 +19,11 @@ class TestSquare : public CxxTest::TestSuite { TS_ASSERT_EQUALS(sq3.file(), 3); TS_ASSERT_EQUALS(sq3.rank(), 8); } + void testStringViewConstructor() { + Square s = Square("b5"); + TS_ASSERT_EQUALS(s.file(), 1); + TS_ASSERT_EQUALS(s.rank(), 4); + } // testing operators void testAdd() { From 18dd8403841fa5c0ef102b00402ab44f3eff863a Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:06:21 -0400 Subject: [PATCH 04/14] test: add testcase for Square::Square(const char *s) --- test/Square.cxxtest.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index de0cd84..1e6cd05 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -24,6 +24,12 @@ class TestSquare : public CxxTest::TestSuite { TS_ASSERT_EQUALS(s.file(), 1); TS_ASSERT_EQUALS(s.rank(), 4); } + void testCharArrayConstructor() { + char a[2] = {'b', '5'}; + Square s = Square(a); + TS_ASSERT_EQUALS(s.file(), 1); + TS_ASSERT_EQUALS(s.rank(), 4); + } // testing operators void testAdd() { From f1c427c781ec546505e03bd66d36995e4bc761a8 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:08:51 -0400 Subject: [PATCH 05/14] test: test an invalid square for Square::toString() --- test/Square.cxxtest.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 1e6cd05..6e2acf2 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -59,7 +59,12 @@ class TestSquare : public CxxTest::TestSuite { // testing methods void testToString() { - Square s = Square(3, 5); + // valid + const Square s = Square(3, 5); TS_ASSERT_EQUALS(s.toString(), "d6"); + + // invalid + const Square s2 = Square(73); + TS_ASSERT_EQUALS(s2.toString(), "??"); } }; From aecfebedeff662b601e6d679df15e22accb2b228 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:12:23 -0400 Subject: [PATCH 06/14] style: set MaxEmptyLinesToKeep = 1 --- .clang-format | 1 + test/Square.cxxtest.hpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index 8989956..680ce38 100644 --- a/.clang-format +++ b/.clang-format @@ -5,3 +5,4 @@ IndentAccessModifiers: true AccessModifierOffset: 1 ReflowComments: false ColumnLimit: 10000 +MaxEmptyLinesToKeep: 1 diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 6e2acf2..412ada7 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -62,7 +62,7 @@ class TestSquare : public CxxTest::TestSuite { // valid const Square s = Square(3, 5); TS_ASSERT_EQUALS(s.toString(), "d6"); - + // invalid const Square s2 = Square(73); TS_ASSERT_EQUALS(s2.toString(), "??"); From c26be9abf3019523c23988edfca4ca83b71ab973 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:14:43 -0400 Subject: [PATCH 07/14] test: add testcase for Square::isValid() --- test/Square.cxxtest.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 412ada7..22af203 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -67,4 +67,11 @@ class TestSquare : public CxxTest::TestSuite { const Square s2 = Square(73); TS_ASSERT_EQUALS(s2.toString(), "??"); } + void testIsValid() { + const Square s = Square(1); + TS_ASSERT_EQUALS(s.isValid(), true); + + const Square s2 = Square(9); + TS_ASSERT_EQUALS(s2.isValid(), false); + } }; From 996a92f6f308d952e8fe7afd3b1da76f3db973ce Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:23:29 -0400 Subject: [PATCH 08/14] test: add testcase for Square::operator+=(int off) --- test/Square.cxxtest.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 22af203..9b56f29 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -36,6 +36,11 @@ class TestSquare : public CxxTest::TestSuite { Square sq3 = Square(3, 8) + Offset(2, -1); TS_ASSERT_EQUALS(sq3, Square(3 + (-1), 8 + 2)); } + void testAdditionAssignment() { + Square s = Square(2, 5); + s += 1; + TS_ASSERT_EQUALS(s, Square(3, 5)); + } void testEquals() { TS_ASSERT(Square(3, 8) == Square(3, 8)); TS_ASSERT(!(Square(3, 7) == Square(3, 8))); From 884dab685f88cd389c775c93c3c2bfb6065c4db1 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:26:00 -0400 Subject: [PATCH 09/14] test: write testcase for Square::file() --- test/Square.cxxtest.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 9b56f29..54ce568 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -79,4 +79,8 @@ class TestSquare : public CxxTest::TestSuite { const Square s2 = Square(9); TS_ASSERT_EQUALS(s2.isValid(), false); } + void testFile() { + const Square s = Square(3 * 16 + 5); + TS_ASSERT_EQUALS(s.file(), 5); + } }; From ce3aa68089753f5397b6f27e8da82d92815be135 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:26:54 -0400 Subject: [PATCH 10/14] test: add testcase for Square::rank() --- test/Square.cxxtest.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 54ce568..09654bc 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -83,4 +83,8 @@ class TestSquare : public CxxTest::TestSuite { const Square s = Square(3 * 16 + 5); TS_ASSERT_EQUALS(s.file(), 5); } + void testRank() { + const Square s = Square(3 * 16 + 5); + TS_ASSERT_EQUALS(s.rank(), 3); + } }; From eba792c99b488fa7329eaf9d0b8cdade8f19e1d5 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:28:16 -0400 Subject: [PATCH 11/14] test: write testcase for Square::operator()() --- test/Square.cxxtest.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 09654bc..92b0ed0 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -61,6 +61,13 @@ class TestSquare : public CxxTest::TestSuite { int s = Square(1, 2) - Square(1, 2); TS_ASSERT_EQUALS(s, Offset(1 - 1, 2 - 2)); } + void testParentheses(){ + const Square s = Square(3, 5); + TS_ASSERT_EQUALS(s(), "d6"); + + const Square s2 = Square(73); + TS_ASSERT_EQUALS(s2(), "??"); + } // testing methods void testToString() { From 1405cd6a5b18dfb50ef74fc675abca3cc73272af Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:31:36 -0400 Subject: [PATCH 12/14] test: add testcase for Square::to64() --- test/Square.cxxtest.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 92b0ed0..470b404 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -94,4 +94,8 @@ class TestSquare : public CxxTest::TestSuite { const Square s = Square(3 * 16 + 5); TS_ASSERT_EQUALS(s.rank(), 3); } + void testTo64() { + const Square s = Square(2, 5); + TS_ASSERT_EQUALS(s.to64(), 2 + 5 * 8); + } }; From 337eae061b5b415ab4c3625ad11d583a67b4d821 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:32:10 -0400 Subject: [PATCH 13/14] style: add missing space after testParentheses declaration --- test/Square.cxxtest.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 470b404..1165f20 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -61,7 +61,7 @@ class TestSquare : public CxxTest::TestSuite { int s = Square(1, 2) - Square(1, 2); TS_ASSERT_EQUALS(s, Offset(1 - 1, 2 - 2)); } - void testParentheses(){ + void testParentheses() { const Square s = Square(3, 5); TS_ASSERT_EQUALS(s(), "d6"); From c721e2a3e39a9a68f22508698e9966a4f7d9bc55 Mon Sep 17 00:00:00 2001 From: duckmaster Date: Mon, 31 Aug 2026 19:33:26 -0400 Subject: [PATCH 14/14] test: add testcase for Square::from64() --- test/Square.cxxtest.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/Square.cxxtest.hpp b/test/Square.cxxtest.hpp index 1165f20..1bb8661 100644 --- a/test/Square.cxxtest.hpp +++ b/test/Square.cxxtest.hpp @@ -98,4 +98,8 @@ class TestSquare : public CxxTest::TestSuite { const Square s = Square(2, 5); TS_ASSERT_EQUALS(s.to64(), 2 + 5 * 8); } + void testFrom64() { + const Square s = Square::from64(2 + 5 * 8); + TS_ASSERT_EQUALS(s, Square(2, 5)); + } };