Re: [PATCH 0/4] Re: [PATCH 3/4] t: rev-parse-parents: avoid yoda conditions
- From
Jeff King <peff@peff.net>
- Date
- Sep 8, 2013, 04:26 UTC
- Message-ID
- <20130908042649.GC14019@sigill.intra.peff.net>
- In-Reply-To
- <CAMP44s16RZ9JguL=NPcD8TE-gdG7vGEa5KLHzv4bf_VLLEhPRw@mail.gmail.com>
On Sat, Sep 07, 2013 at 11:13:10PM -0500, Felipe Contreras wrote:
Show 12 quoted lines
> > If the reasoning is "cmp(actual, expect) makes more sense to humans"
> > then I do not think it is universal.
>
> No.
>
> ---
> A(ny) sanely defined "compare A with B" function should yield the
> result of subtracting B from A, i.e. cmp(A,B) should be like (A-B).
> That is what you feed qsort() and bsearch() (it is not limited to C;
> you see the same in "sort { $a <=> $b }"). The definition naturally
> makes "cmp(A,B) < 0" like "A < B" and "cmp(A,B) > 0" like "A > B".
> ---Ah, you mean "if you think that the compare function should behave like C *_cmp functions, it should be A-B". Perhaps it is simply that I do not think of the function in those terms, but more like "show me the differences from B to A".
> > Otherwise why would so many > > existing test frameworks do it the other way? > > Which many existing frameworks do it the other way?
John mentioned JUnit, NUnit, and PHPUnit earlier in the thread. I believe that Ruby's Test::Unit::Assertions also has assert_equal(expected, actual).
Show 11 quoted lines
> > Or any number of variations. I'm sure you will say "but those seem > > awkward and unlike how I think about it". But that was my point; it > > seems to be a matter of preference. > > Really? You think any sane human being would prefer: > > Computer, given that we expect B, how does A differ? > > To: > > Computer, compare A with B
I already said that is how I think about it. If you want to call me not sane, feel free. But I do not see that this line of discussion is going anywhere productive.
-Peff