in reply to Re^5: Benchmarking "Are all these characters in this sentence?" (Are you bored yet? :)
in thread Benchmarking "Are all these characters in this sentence?"

I doubt it - I'm guessing you're going to post buk5 which passes the tests, because buk4 doesn't :)

Mike
  • Comment on Re^6: Benchmarking "Are all these characters in this sentence?" (Are you bored yet? :)

Replies are listed 'Best First'.
Re^7: Benchmarking "Are all these characters in this sentence?" (Are you bored yet? :)
by BrowserUk (Patriarch) on Sep 01, 2008 at 19:20 UTC

    That's weird? I just re-downloaded the benchmark code from the OP and I don't get any failures?

    c:\test>707621.pl Running benchmarks... Short Rate tall tallulah_OriginalPost 39.7/s Tanktalus_AllRegex_Study 42.0/s Tanktalus_AllRegex 42.1/s varian_hash 65.7/s RMGir_slice 92.0/s moritz_BuildRegex_WithStudy 120/s moritz_BuildRegex 122/s Tanktalus_AllIndex 166/s unpack_allrindex 176/s unpack_allindex 180/s ysth_loookahead 205/s tassilo_listutils_r 245/s repellent_unpack 326/s RMGir_index 331/s repellent_unpack_opt 369/s tye2 382/s tye1 465/s tye0_opt 583/s tye2_opt 592/s tye0 601/s tye1_opt 609/s buk_substr 662/s buk 1101/s buk2_len 1911/s buk2 2085/s buk3 2943/s buk4 3044/s LongShort (warning: too few iteration (warning: too few iteration (warning: too few iteration Rate vari varian_hash 1.62/s RMGir_slice 1.80/s tallulah_OriginalPost 64.0/s Tanktalus_AllRegex_Study 64.0/s Tanktalus_AllRegex 68.4/s moritz_BuildRegex_WithStudy 131/s moritz_BuildRegex 205/s unpack_allrindex 311/s Tanktalus_AllIndex 311/s ysth_loookahead 325/s unpack_allindex 328/s tassilo_listutils_r 374/s RMGir_index 508/s repellent_unpack 513/s repellent_unpack_opt 548/s tye2 585/s tye1 698/s buk_substr 983/s tye2_opt 986/s tye0 1027/s tye1_opt 1056/s tye0_opt 1066/s buk 1635/s buk2_len 4263/s buk2 4487/s buk3 5729/s buk4 6869/s ShortLong (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration Rate tal tallulah_OriginalPost 1.05/s Tanktalus_AllRegex 1.33/s Tanktalus_AllRegex_Study 1.33/s moritz_BuildRegex 1.75/s moritz_BuildRegex_WithStudy 1.80/s varian_hash 2.40/s RMGir_index 4.92/s tassilo_listutils_r 5.00/s Tanktalus_AllIndex 5.26/s repellent_unpack 5.26/s repellent_unpack_opt 5.33/s ysth_loookahead 5.33/s unpack_allrindex 5.33/s unpack_allindex 5.48/s RMGir_slice 5.48/s tye2 16.9/s tye0_opt 18.7/s tye0 19.0/s tye2_opt 19.0/s tye1_opt 20.0/s tye1 20.3/s buk_substr 35.0/s buk 41.4/s buk2_len 532/s buk2 583/s buk3 623/s buk4 11924/s LongLong (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration (warning: too few iteration Rate tal tallulah_OriginalPost 1.08/s Tanktalus_AllRegex 1.33/s Tanktalus_AllRegex_Study 1.36/s varian_hash 1.42/s moritz_BuildRegex 1.75/s moritz_BuildRegex_WithStudy 1.75/s RMGir_slice 2.16/s repellent_unpack 4.78/s RMGir_index 4.78/s Tanktalus_AllIndex 4.86/s tassilo_listutils_r 4.92/s repellent_unpack_opt 5.00/s unpack_allrindex 5.33/s ysth_loookahead 5.41/s unpack_allindex 5.41/s tye2 16.7/s tye2_opt 18.7/s tye0 18.7/s tye0_opt 19.2/s tye1 19.3/s tye1_opt 19.9/s buk_substr 39.6/s buk 40.8/s buk2_len 498/s buk2 563/s buk3 613/s buk4 10636/s VeryLong (warning: too few iteration (warning: too few iteration Rate var varian_hash 2.63/s RMGir_slice 2.87/s tallulah_OriginalPost 69.4/s Tanktalus_AllRegex_Study 74.7/s Tanktalus_AllRegex 77.2/s moritz_BuildRegex_WithStudy 183/s moritz_BuildRegex 234/s unpack_allrindex 380/s unpack_allindex 393/s Tanktalus_AllIndex 447/s ysth_loookahead 450/s tassilo_listutils_r 505/s RMGir_index 597/s repellent_unpack 620/s repellent_unpack_opt 696/s tye2 762/s tye1 871/s tye1_opt 916/s tye0_opt 917/s tye0 917/s tye2_opt 918/s buk_substr 1515/s buk 1618/s buk2_len 12547/s buk2 12967/s buk3 15292/s buk4 23053/s

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      The benchmarks run whether the code is right or not.

      To see the tests run, pass a -t argument:

      $ perl timeSentenceChars.pl -t
      ... other tests ....
      Testing buk4
      not ok 77
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 78
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 79
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      ok 80
      ok 81
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 82
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 83
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      ok 84
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 85
      #   Failed test in timeSentenceChars.pl at line 103.
      ok 86
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 87
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      ok 88
      ok 89
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 90
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 91
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      ok 92
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 93
      #   Failed test in timeSentenceChars.pl at line 103.
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      ok 94
      Use of uninitialized value in numeric eq (==) at timeSentenceChars.pl line 103.
      not ok 95
      #   Failed test in timeSentenceChars.pl at line 103.
      
      

      Mike

        Actually, it's your tests that are broken. They assume that the routines will return "0" for false, where as my routines (all of them including buk3 which you said passes all the tests), return undef. And that is where the Use of uninitialized value in numeric eq (==) ... warning message is coming from. Your tests (or test tools) not my code.

        The received wisdom is that subs should just return; to indicate false as this will do the right thing when called in both scalar and list contexts.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.