public void Add_CreatesStruct0(FluentPoints fp, Point[] actual)
        {
            "Given fluent points"
            .x(() => fp = new FluentPoints());

            "When add is called with identity"
            .x(() => actual = Add(fp)(Identity));

            "Then a point is created with default values"
            .x(() => {
                Assert.Single(actual);
                Assert.Equal(0, actual[0].X);
                Assert.Equal(0, actual[0].Y);
            });
        }
        public void Add_CreatesStruct1(FluentPoints fp, Point[] actual)
        {
            "Given fluent points"
            .x(() => fp = new FluentPoints());

            "When add is called with a map"
            .x(() => actual = Add(fp)(p => {
                p.X = 2;
                return(p);
            }));

            "Then a point is created with the map applied"
            .x(() => {
                Assert.Single(actual);
                Assert.Equal(2, actual[0].X);
                Assert.Equal(0, actual[0].Y);
            });
        }