public void When_both_values_are_at_their_maximum_then_it_should_succeed()
            {
                // Arrange
                TimeOnly timeOnly     = TimeOnly.MaxValue;
                TimeOnly sameTimeOnly = TimeOnly.MaxValue;

                // Act/Assert
                timeOnly.Should().Be(sameTimeOnly);
            }
            public void Should_succeed_when_asserting_nullable_numeric_value_equals_the_same_value()
            {
                // Arrange
                TimeOnly?nullableTimeOnlyA = new TimeOnly(15, 06, 04, 123);
                TimeOnly?nullableTimeOnlyB = new TimeOnly(15, 06, 04, 123);

                // Act/Assert
                nullableTimeOnlyA.Should().Be(nullableTimeOnlyB);
            }
            public void Should_fail_when_asserting_timeonly_value_is_equal_to_the_different_value_by_milliseconds()
            {
                // Arrange
                var timeOnly      = new TimeOnly(15, 03, 10, 556);
                var otherTimeOnly = new TimeOnly(15, 03, 10, 175);

                // Act
                Action act = () => timeOnly.Should().Be(otherTimeOnly, "because we want to test the failure {0}", "message");

                // Assert
                act.Should().Throw <XunitException>()
                .WithMessage("Expected timeOnly to be <15:03:10.175>*failure message, but found <15:03:10.556>.");
            }
            public void Should_fail_when_asserting_nullable_numeric_value_equals_a_different_value()
            {
                // Arrange
                TimeOnly?nullableTimeOnlyA = new TimeOnly(15, 06, 04);
                TimeOnly?nullableTimeOnlyB = new TimeOnly(15, 06, 06);

                // Act
                Action action = () =>
                                nullableTimeOnlyA.Should().Be(nullableTimeOnlyB);

                // Assert
                action.Should().Throw <XunitException>();
            }