[Scilab-users] help_from_sci() with %overload.sci <= Re: unit tests and help generation for overloaded unary/binary operators

Samuel Gougeon sgougeon at free.fr
Tue Oct 3 13:54:07 CEST 2017


Hi,

Le 16/06/2016 à 18:28, philippe a écrit :
> Hi,
>
> I'm writing a toolbox to handle "big integers" represented by a tlist
> of type "bigint". In my "macros/" directory  I wrote my scilab functions
> for bigint type  and overloaded unary and  binary operators (+,-,>,==,
> ...) for example %bigint_o_bigint  for bigint equality "=="  (see the
> source code at the bottom of this message ). For each function I wrote,
> I've created :
>
> - a short help,  as a comment at the beginning of the *.sci file
> - a test file "*.tst" placed in "/tests/unit_tests/" directory
>
> I have some problems when I execute my builder.sce  :
>
> if %bigint_o_bigint  function is stored in macros/%bigint_o_bigint.sci
> and its unit test in tests/unit_tests/%bigint_o_bigint.tst  then I get
> an error  during help generation (but unit_tests are OK) :

What you did not really say here is that you use help_from_sci() to 
build your XML pages from heading comments in your %overload_name.sci files.
Now, help_from_sci() does not support properly functions names starting 
with "%", including some
forbidden "%" characters in XML filenames and xml:id value.
This is now reported as http://bugzilla.scilab.org/15282
with a proposed fix @ https://codereview.scilab.org/#/c/19443

With this fix, you will no longer need to post-process your filenames 
and files contents
to make the doc builder running right. It normalizes filenames and 
xml:id in the same way
as native Scilab files are, by replacing "%" with "percent".

BR
Samuel

>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> Génération du document maître :
> 	/home/roux/Documents/informatique/scilab/bigint/help/en_US
>
> Génération du fichier d'aide [javaHelp] in
> /home/roux/Documents/informatique/scilab/bigint/help/en_US.
>   !--error 999
> buildDoc : Erreur pendant la génération de la documentation : no
> protocol:
> /home/roux/Documents/informatique/scilab/bigint/help/en_US/%bigint_o_bigint.xml.
> at line     691 of function xmltoformat called by :
> at line      17 of function xmltojar called by :
> at line      51 of function tbx_build_help called by :
> tbx_build_help(toolbox_title, help_lang_dir);
> at line       7 of exec file called by :
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> if %bigint_o_bigint function is stored in macros/bigint_o_bigint.sci and
> its unit test in tests/unit_tests/%bigint_o_bigint.tst  or
> tests/unit_tests/bigint_o_bigint.tst   then I get the error  during
> unit_tests (but online help is generated without problems ???? )
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> -->tbx_build_help_loader(toolbox_title, help_dir)
>
>     TMPDIR = /tmp/SCI_TMP_420_E0z4Rx
>
>     001/001 - [.] :
>
>     001/009 - [.] bigint.........................................failed:
> premature end of the test script
>     002/009 - [.] bigint_o_bigint................................failed:
> premature end of the test script
>
>
> [...........]
>
>     TEST : [.] bigint_o_bigint
>     failed: premature end of the test script
>     Check the following file :
>     - /tmp/SCI_TMP_420_E0z4Rx/bigint_o_bigint.dia.tmp
>     Or launch the following command :
>     -
> exec("/home/roux/Documents/informatique/scilab/bigint/tests/unit_tests/bigint_o_bigint.tst");
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> same problem  with %bigint_o_bigint.tst
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
>     001/009 - [.] %bigint_o_bigint...............................failed:
> premature end of the test script
>
> [........]
>
>     TEST : [.] %bigint_o_bigint
>     failed: premature end of the test script
>     Check the following file :
>     - /tmp/SCI_TMP_420_E0z4Rx/%bigint_o_bigint.dia.tmp
>     Or launch the following command :
>     -
> exec("/home/roux/Documents/informatique/scilab/bigint/tests/unit_tests/%bigint_o_bigint.tst");
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> how can I solve both problems ?
>
> Philippe.
>
> my %bigint_o_bigint code with help inside :
>
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> function [bool]=%bigint_o_bigint(x,y)
>      //
>      // Calling Sequence
>      //   x==y
>      //
>      // Parameters
>      //  x,y: bigint
>      //  bool : boolean
>      //
>      // Description
>      // bigint comparison
>      //
>      // Examples
>      // //
>      // x=bigint('123456789')
>      // y=bigint('0123456789')
>      // z=bigint('1234567890')
>      // x==y  // true
>      // x==z  // false
>      //
>      // See also
>      //  bigint
>      //
>      // Authors
>      //  Philippe Roux
>      //
>
>      x=check_bigint(x)
>      y=check_bigint(y)
>      bool=(x.signe==y.signe)&(and(x.rep==y.rep))
> endfunction
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users





More information about the users mailing list