public void should_match_not_equal_open_generic_type([Values(null, "tag")] object?tag)
    {
        // --arrange
        var unitId = new UnitId(typeof(IList <>), tag);
        var target = new IsGenericOfDefinition(typeof(List <>), tag);

        // --assert
        target.Matches(unitId).Should().BeFalse();
    }
    public void should_not_equal_if_tag_differ([Values(null, "tag")] object?tag)
    {
        // --arrange
        var target1 = new IsGenericOfDefinition(typeof(List <>), tag);
        var target2 = new IsGenericOfDefinition(typeof(List <>), "different tag");

        // --assert
        target1.Equals(target2).Should().BeFalse();
        target2.Equals(target1).Should().BeFalse();
    }
    public void should_equal_if_arguments_equal([Values(null, "tag")] object?tag)
    {
        // --arrange
        var target1 = new IsGenericOfDefinition(typeof(List <>), tag);
        var target2 = new IsGenericOfDefinition(typeof(List <>), tag);

        // --assert
        target1.Equals(target2).Should().BeTrue();
        target2.Equals(target1).Should().BeTrue();
    }