aspell-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [aspell-devel] clear_session, store_replacement, and support


From: Bill Moseley
Subject: Re: [aspell-devel] clear_session, store_replacement, and support
Date: Fri, 29 Jul 2005 07:58:54 -0700
User-agent: Mutt/1.5.9i

Thanks for the reply, Gary:

On Fri, Jul 29, 2005 at 08:35:24AM -0500, Gary Setter wrote:
> ___POINT 1___
> The function seems to be in error. Take a look at the
> implmentation of store_replacement.
> 
>   PosibErr<void> SpellerImpl::store_replacement(const String &
> mis,
>                                                 const String &
> cor,
>                                                 bool memory)
> 
> It returns a void, not a bool. There is no data returned.

Is the API *suppose* to return a value?  And if false should the
error number and error message be available with aspell_speller_error_number
and aspell_speller_error_message?  That's what I'm not clear on.


> ___POINT 2___
> Maybe someone else can quickly reproduce the problem, but if your
> need someone to investigate, I'm willing as long as you show me
> how to reproduce the problem. I have perl, but I don't have the
> perl to aspell interface. I don't know what you're talking about
> when you say "running "make test" on the Perl module". I don't
> know the functions session functions either, but I'm willing to
> learn :-).

Again, I'd like to first make sure that I'm using clear_session
correctly and I understand the Aspell usage correctly.

Perl modules are built like this:

    $ perl Makefile.PL    (creates a Makefile)
    $ make
    $ make test  ( runs test scripts in the "t" directory)

The tests are run via a standard perl module that looks simply for
"ok" and "not ok" output from the script for each of its tests.

To get verbose output from running "make test" you do:

    $ make test TEST_VERBOSE=1

and you see output from each test.

I'll attach the Perl module for you to try.  I may or may not fail
tests on your machine.

The tests in question do this:


    ok( $speller->add_to_session('testt'), "add 'testtt' to the aspell 
session") or
        diag( 'Error: ' . $speller->errstr );

    @s_words = $speller->suggest('testt');
    ok( grep(/testt/, @s_words), "'testtt' added to session now is returned in 
suggest" );

then later the session is cleared and I check that "testt' is no
longer in the words suggested:

    ok_to_fail( $speller->clear_session, 'Clear the aspell session' ) or
        diag("clear_session may fail like store_replacement.  See README" );


    @s_words = $speller->suggest('testt');
    ok( !grep(/testt/, @s_words), "'testt' should not be a suggestion after 
clearing the session'")
        or diag( "suggested words were address@hidden" );

Notice that it's negating the grep (so it's making sure "testt" isn't
in @s_words).


Again, I want to be clear about the API -- I want to make sure I'm
testing return values for every function that returns a value
indicating an error.

What seems to be happening is that I may be testing return values
when I should not be testing them, or maybe Aspell is not returning
them correctly when it should -- as you saw from the
store_replacement() problem above.  The problem is not consistent
(fails for some users, others it doesn't).


Thanks,


PS -- one other question:  I require the en_US dictionary installed
for testing.  Of course, not everyone has that dictionary, but I'm
not sure how I can test Aspell without knowing a specific dictionary
is installed -- I want to make sure I can lookup mispelled words, so
seems like I need a specific dictionary to do that.  If you or anyone
has a better idea I'd like to hear.  Also, I'm not 100% clear how to
verify that the dictionary I need is installed -- but I haven't
looked at that yet.




-- 
Bill Moseley
address@hidden

Attachment: Text-Aspell-0.05.tar.gz
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]