Re: Fwd: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Smylers
demerphq writes: > On 7/1/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > > ... I'm of the opinion that is_deeply() is currently doing the right > > thing ... Largely it comes down to the Principle of Least Surprise. > > I cant agree with this analysis. If you go down this route surprise >

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread Yitzchak Scott-Thoennes
On Fri, Jul 01, 2005 at 07:11:26AM +, Smylers wrote: > > To me 'deeply' implies recursing as deep as the data structure goes, not > that there's a special rule for the top-level that's treated differently > from the others. Nobody is saying is_deeply shouldn't be deep. If I understand correc

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread Michael G Schwern
On Fri, Jul 01, 2005 at 07:11:26AM +, Smylers wrote: > > The question you have to ask yourself is why should a reference be > > treated different from any other value? It is a VALUE. > > Except it isn't. Or at least, not all the time: it depends how you wish > to look at it. If you just cons

Re: Fwd: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Michael G Schwern
On Fri, Jul 01, 2005 at 08:28:30AM +0200, demerphq wrote: > > After talking with Ovid some in the kitchen I'm of the opinion that > > is_deeply() is currently doing the right thing and that these tests cannot > > go. Largely it comes down to the Principle of Least Surprise. > > I cant agree with

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread demerphq
On 7/1/05, Smylers <[EMAIL PROTECTED]> wrote: > demerphq writes: > > > On 7/1/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > > > > ... I'm of the opinion that is_deeply() is currently doing the right > > > thing ... Largely it comes down to the Principle of Least Surprise. > > > > I cant agr

Re: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread demerphq
On 6/30/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > Yves has some controversial ideas about what is and is not data structure > equivalence. I'd like comments on it. Well while im disappointed that its considered to be a controversial position (why is accuracy and correctness controversial

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread Smylers
demerphq writes: > Well that says there are two different behaviours that people expect. > They are exclusive. Yes. We all want to do the least surprising thing, but it seems different people are surprised by different things; whichever behaviour is implemented some people are going to suffer un

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread Fergal Daly
On 7/1/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > is_deeply() is not about exact equivalence. Its about making a best fit > function for the most common uses. I think most people expect [$a, $a] and > [$b,$c] to come out equal. > > Test::Deep is for tweaked deep comparisons. Test::Deep d

Re: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread David Landgren
demerphq wrote: On 6/30/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: Yves has some controversial ideas about what is and is not data structure equivalence. I'd like comments on it. Well while im disappointed that its considered to be a controversial position (why is accuracy and correct

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread demerphq
On 7/1/05, Fergal Daly <[EMAIL PROTECTED]> wrote: > On 7/1/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > is_deeply() is not about exact equivalence. Its about making a best fit > > function for the most common uses. I think most people expect [$a, $a] and > > [$b,$c] to come out equal. > >

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread demerphq
On 7/1/05, Smylers <[EMAIL PROTECTED]> wrote: > demerphq writes: > > > Well that says there are two different behaviours that people expect. > > They are exclusive. > > Yes. We all want to do the least surprising thing, but it seems > different people are surprised by different things; whichever

Re: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread demerphq
On 7/1/05, David Landgren <[EMAIL PROTECTED]> wrote: > demerphq wrote: > > On 6/30/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > > >>Yves has some controversial ideas about what is and is not data structure > >>equivalence. I'd like comments on it. > > > > > > Well while im disappointed tha

Re: Fwd: [demerphq@gmail.com: Re: fixing is_deeply]

2005-07-01 Thread Piers Cawley
Michael G Schwern <[EMAIL PROTECTED]> writes: > On Fri, Jul 01, 2005 at 07:11:26AM +, Smylers wrote: >> > The question you have to ask yourself is why should a reference be >> > treated different from any other value? It is a VALUE. >> >> Except it isn't. Or at least, not all the time: it de

is_deeply and overloading

2005-07-01 Thread Fergal Daly
What's going on with overloading in 0.60? The docs say it will compare a string-overloaded object with a string but when I run the code below I get === # x = stringy not ok 1 # Failed test (over.pm at line 8) Operation `eq': no method found, left argument in overloaded package over

Re: Fwd: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Ovid
--- Piers Cawley <[EMAIL PROTECTED]> wrote: > I've always thought of C as being about the 'shape' of a > data > structure. When you think of things in this way, then it seems > obvious that given > > $a = [], $b = [], $c = [] > > then [$a, $a] and [$b, $c] have substantially different shapes.

Re: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Yitzchak Scott-Thoennes
On Fri, Jul 01, 2005 at 05:57:51PM +0200, demerphq wrote: > On 7/1/05, David Landgren <[EMAIL PROTECTED]> wrote: > > demerphq wrote: > > > it is important that this is debated outside of just the perl-qa list > > > (its not that high traffic or visibility IMO) so I have taken the > > > liberty of s

Re: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Michael G Schwern
On Fri, Jul 01, 2005 at 12:13:37PM -0700, Yitzchak Scott-Thoennes wrote: > On Fri, Jul 01, 2005 at 05:57:51PM +0200, demerphq wrote: > > On 7/1/05, David Landgren <[EMAIL PROTECTED]> wrote: > > > demerphq wrote: > > > > it is important that this is debated outside of just the perl-qa list > > > > (

Re: Fwd: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Michael G Schwern
On Fri, Jul 01, 2005 at 10:28:29AM -0700, Ovid wrote: > So, just for the sake of argument, imagine I write a class where I > periodically returns array refs to the user. I do this by building > them every time they're called. Later, I realize that my methods are > deterministic so I start caching

Re: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread Michael G Schwern
On Fri, Jul 01, 2005 at 02:39:46PM +0200, demerphq wrote: > On 6/30/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > Yves has some controversial ideas about what is and is not data structure > > equivalence. I'd like comments on it. > > Well while im disappointed that its considered to be a c

Re: is_deeply and overloading

2005-07-01 Thread Michael G Schwern
On Fri, Jul 01, 2005 at 03:08:50PM +0100, Fergal Daly wrote: > What's going on with overloading in 0.60? The docs say it will compare > a string-overloaded object with a string but when I run the code below I accidentally added in a short-circuit reference comparison prior to the point where value

Re: Fwd: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread _brian_d_foy
In article <[EMAIL PROTECTED]>, Demerphq <[EMAIL PROTECTED]> wrote: > On 7/1/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > After talking with Ovid some in the kitchen I'm of the opinion that > > is_deeply() is currently doing the right thing and that these tests cannot > > go. Largely it c

Diagnostics changed to include test description

2005-07-01 Thread Michael G Schwern
MY BUSINESS IS DONE! Test diagnostics now look like this: not ok 21 - foo is bar? # Failed test 'foo is bar?' # in t/foo.t at line 40. # got: 'foo' # expected: 'bar' If there's no description it looks like this: not ok 21 # Failed test in t/foo.t at line 40. #

like, cmp_ok and undef

2005-07-01 Thread Michael G Schwern
is() supresses "Use of uninitalized value" warnings because its useful to do things like: is( $foo, undef ); which provides more information than ok( !defined $foo ); because if it is defined its nice to know what the value is. Similarly is_deeply() suppresses undef warnings.

Re: Fwd: [EMAIL PROTECTED]: Re: fixing is_deeply]

2005-07-01 Thread demerphq
On 7/1/05, _brian_d_foy <[EMAIL PROTECTED]> wrote: > In article <[EMAIL PROTECTED]>, Demerphq > <[EMAIL PROTECTED]> wrote: > > > On 7/1/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > > > After talking with Ovid some in the kitchen I'm of the opinion that > > > is_deeply() is currently doing th