[latex3-commits] [latex3/latex3] main: Update testfiles; add new test `m3fp-symbolic002` (e066b576d)

github at latex-project.org github at latex-project.org
Thu Oct 26 18:05:45 CEST 2023


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/e066b576d241f991e250d3da181fcdf4447ff6b7

>---------------------------------------------------------------

commit e066b576d241f991e250d3da181fcdf4447ff6b7
Author: Yukai Chou <muzimuzhi at gmail.com>
Date:   Thu Oct 26 08:06:15 2023 +0800

    Update testfiles; add new test `m3fp-symbolic002`


>---------------------------------------------------------------

e066b576d241f991e250d3da181fcdf4447ff6b7
 l3kernel/testfiles/m3fp-symbolic001.luatex.tlg |  18 +--
 l3kernel/testfiles/m3fp-symbolic001.lvt        |  29 +++-
 l3kernel/testfiles/m3fp-symbolic001.tlg        |  18 +--
 l3kernel/testfiles/m3fp-symbolic002.luatex.tlg | 175 +++++++++++++++++++++++++
 l3kernel/testfiles/m3fp-symbolic002.lvt        | 144 ++++++++++++++++++++
 l3kernel/testfiles/m3fp-symbolic002.tlg        | 175 +++++++++++++++++++++++++
 6 files changed, 537 insertions(+), 22 deletions(-)

diff --git a/l3kernel/testfiles/m3fp-symbolic001.luatex.tlg b/l3kernel/testfiles/m3fp-symbolic001.luatex.tlg
index 8353d500e..bf075431f 100644
--- a/l3kernel/testfiles/m3fp-symbolic001.luatex.tlg
+++ b/l3kernel/testfiles/m3fp-symbolic001.luatex.tlg
@@ -142,12 +142,14 @@ contains 'Y' itself.
 l. ...  }
 ============================================================
 ============================================================
-TEST 6: Intermixing variables and functions
-============================================================
-Defining \__fp_parse_word_E:N on line ...
-Defining \__fp_parse_word_PS:N on line ...
-Defining \__fp_parse_word__i:N on line ...
-> E**2+PS(3)=31.
-<recently read> }
-l. ...  }
+TEST 6: Set and clear both acts locally
+============================================================
+Defining \__fp_parse_word_P:N on line ...
+((P)*(P))+(1)
+401
+((P)*(P))+(1)
+401
+((P)*(P))+(1)
+401
+((P)*(P))+(1)
 ============================================================
diff --git a/l3kernel/testfiles/m3fp-symbolic001.lvt b/l3kernel/testfiles/m3fp-symbolic001.lvt
index f8cc16a31..f4c5f04d8 100644
--- a/l3kernel/testfiles/m3fp-symbolic001.lvt
+++ b/l3kernel/testfiles/m3fp-symbolic001.lvt
@@ -84,13 +84,30 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\TEST { Intermixing~variables~and~functions }
+\TEST { Set~and~clear~both~acts~locally }
   {
-    \fp_new_variable:n { E }
-    \fp_new_function:n { PS }
-    \fp_set_variable:nn { E } { 2 }
-    \fp_set_function:nnn { PS } { E } { E**E }
-    \fp_show:n { E**2 + PS(3) }
+    \OMIT
+    \cs_set:Npn \test_temp:
+      { \TYPE { \fp_to_tl:n { P*P + 1 } } }
+    \TIMO
+    \fp_new_variable:n { P }
+    \test_temp: % symbolic
+
+    \group_begin:
+      \fp_set_variable:nn { P } { 20 }
+      \test_temp: % numeric
+    \group_end:
+    \test_temp: % symbolic
+    \fp_set_variable:nn { P } { 20 }
+    \test_temp: % numeric
+
+    \group_begin:
+      \fp_clear_variable:n { P }
+      \test_temp: % symbolic
+    \group_end:
+    \test_temp: % numeric
+    \fp_clear_variable:n { P }
+    \test_temp: % symbolic
   }
 
 \END
diff --git a/l3kernel/testfiles/m3fp-symbolic001.tlg b/l3kernel/testfiles/m3fp-symbolic001.tlg
index de34aa87b..4c3022ef1 100644
--- a/l3kernel/testfiles/m3fp-symbolic001.tlg
+++ b/l3kernel/testfiles/m3fp-symbolic001.tlg
@@ -142,12 +142,14 @@ contains 'Y' itself.
 l. ...  }
 ============================================================
 ============================================================
-TEST 6: Intermixing variables and functions
-============================================================
-Defining \__fp_parse_word_E:N on line ...
-Defining \__fp_parse_word_PS:N on line ...
-Defining \__fp_parse_word__i:N on line ...
-> E**2+PS(3)=31.
-<recently read> }
-l. ...  }
+TEST 6: Set and clear both acts locally
+============================================================
+Defining \__fp_parse_word_P:N on line ...
+((P)*(P))+(1)
+401
+((P)*(P))+(1)
+401
+((P)*(P))+(1)
+401
+((P)*(P))+(1)
 ============================================================
diff --git a/l3kernel/testfiles/m3fp-symbolic002.luatex.tlg b/l3kernel/testfiles/m3fp-symbolic002.luatex.tlg
new file mode 100644
index 000000000..81dc3c0ff
--- /dev/null
+++ b/l3kernel/testfiles/m3fp-symbolic002.luatex.tlg
@@ -0,0 +1,175 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Yukai Chou
+============================================================
+TEST 1: Functions in symbolic expression
+============================================================
+Defining \__fp_parse_word_A:N on line ...
+Defining \__fp_parse_word_B:N on line ...
+Defining \__fp_parse_word_C:N on line ...
+((A(3))+(B(3.141592653589793, 3)))+((C(0, 0, 0.2))*(B(3.141592653589793, 6)))
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+((A(3))+(B(3.141592653589793, 3)))+((C(0, 0, 0.2))*(B(3.141592653589793, 6)))
+((A(3))+(1.047197551196598))+((C(0, 0, 0.2))*(0.5235987755982988))
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+Defining \__fp_parse_word__iii:N on line ...
+Defining \__fp_parse_word_k:N on line ...
+((A(3))+(1.047197551196598))+(-1.047197551196598)
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+3
+============================================================
+============================================================
+TEST 2: Conversions
+============================================================
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX Error: Invalid operation fp_to_decimal((A(1))+((B(1, 2))^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX Error: Invalid operation fp_to_dim((A(1))+((B(1, 2))^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX Error: Invalid operation fp_to_int((A(1))+((B(1, 2))^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX Error: Invalid operation fp_to_scientific((A(1))+((B(1, 2))^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+0
+0pt
+0
+nan
+(A(1))+((B(1, 2))^(2))
+============================================================
+============================================================
+TEST 3: Unary minus and not
+============================================================
+-((A(1))+((B(1, 2))^(2)))
+!((A(1))+((B(1, 2))^(2)))
+============================================================
+============================================================
+TEST 4: Various function names
+============================================================
+! LaTeX Error: Floating point identifier '' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier '' but this may
+only contain ASCII letters.
+! LaTeX Error: Floating point identifier 'a b' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'a b' but this
+may only contain ASCII letters.
+! LaTeX Error: Floating point identifier 'a12' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'a12' but this
+may only contain ASCII letters.
+! LaTeX Error: Floating point identifier '\\' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier '\\' but this
+may only contain ASCII letters.
+! LaTeX Error: Floating point identifier 'a_b' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'a_b' but this
+may only contain ASCII letters.
+Defining \__fp_parse_word_chk:N on line ...
+Defining \__fp_parse_word_aux:N on line ...
+Defining \__fp_parse_word_tmpa:N on line ...
+! LaTeX Error: Floating point identifier 'pi' already defined.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'pi' but this
+name has already been used elsewhere.
+Defining \__fp_parse_word_pi:N on line ...
+! LaTeX Error: Floating point identifier 'inf' already defined.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'inf' but this
+name has already been used elsewhere.
+Defining \__fp_parse_word_inf:N on line ...
+(((1)/(inf(pi(tmpa(1)))))+(aux(-1)))+(chk(1))
+============================================================
+============================================================
+TEST 5: Function parameters are created locally
+============================================================
+Defining \__fp_parse_word_FUNCA:N on line ...
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_a:N on line ...
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX Error: Unknown fp word a.
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+nan
+Defining \__fp_parse_word_a:N on line ...
+(a)+(10)
+42
+============================================================
+============================================================
+TEST 6: Function parameters are cleared locally
+============================================================
+Defining \__fp_parse_word_E:N on line ...
+Defining \__fp_parse_word_PS:N on line ...
+Defining \__fp_parse_word__i:N on line ...
+> E**2+PS(3)=31.
+<recently read> }
+l. ...  }
+============================================================
+============================================================
+TEST 7: Set and clear both act locally
+============================================================
+Defining \__fp_parse_word_FUNCP:N on line ...
+((FUNCP(3, 4))*(10))-(7)
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+243
+((FUNCP(3, 4))*(10))-(7)
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+243
+((FUNCP(3, 4))*(10))-(7)
+243
+((FUNCP(3, 4))*(10))-(7)
+============================================================
diff --git a/l3kernel/testfiles/m3fp-symbolic002.lvt b/l3kernel/testfiles/m3fp-symbolic002.lvt
new file mode 100644
index 000000000..75658325a
--- /dev/null
+++ b/l3kernel/testfiles/m3fp-symbolic002.lvt
@@ -0,0 +1,144 @@
+%
+% Copyright (C) The LaTeX Project
+%
+
+\documentclass{minimal}
+\input{regression-test}
+
+\ExplSyntaxOn
+\debug_on:n { check-declarations , deprecation , log-functions }
+\ExplSyntaxOff
+
+\begin{document}
+\START
+\AUTHOR{Yukai Chou}
+\ExplSyntaxOn
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Functions~in~symbolic~expression }
+  {
+    \fp_new_function:n { A }
+    \fp_new_function:n { B }
+    \fp_new_function:n { C }
+    % wired fp-expr :)
+    \fp_set:Nn \l_tmpa_fp { A(3) + B(pi, 3) + C(0,0,.2) * B(pi, 6) }
+    \TYPE { \fp_to_tl:N \l_tmpa_fp } % symbolic
+    \fp_set_function:nnn { B } { i, j } { i/j }
+    \TYPE { \fp_to_tl:N \l_tmpa_fp } % symbolic
+    \TYPE { \fp_to_tl:n { \l_tmpa_fp } } % symbolic, B(pi, 3) evaluated
+    \fp_set_function:nnn { C } { i, j, k } { k * -10 }
+    \TYPE { \fp_to_tl:n { \l_tmpa_fp } } % symbolic, B & C evaluated
+    \fp_set_function:nnn { A } { i } { sqrt(i * i) }
+    \TYPE { \fp_to_tl:n { \l_tmpa_fp } } % numeric
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TESTEXP { Conversions }
+  {
+    \fp_to_decimal:n { A(1) + B(1,2)**2 } \NEWLINE
+    \fp_to_dim:n { A(1) + B(1,2)**2 } \NEWLINE
+    \fp_to_int:n { A(1) + B(1,2)**2 } \NEWLINE
+    \fp_to_scientific:n { A(1) + B(1,2)**2 } \NEWLINE
+    % the only one that works with a symbolic result
+    \fp_to_tl:n { A(1) + B(1,2)**2 } \NEWLINE
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TESTEXP { Unary~minus~and~not }
+  {
+    \fp_to_tl:n { - (A(1) + B(1,2)**2) } \NEWLINE
+    \fp_to_tl:n { ! (A(1) + B(1,2)**2) } \NEWLINE
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Various~function~names }
+  {
+    \fp_new_function:n { }
+    \fp_new_function:n { a ~ b }
+    \fp_new_function:n { a12 }
+    \fp_new_function:n { \\ }
+    \fp_new_function:n { a_b }
+    \fp_new_function:n { chk } % works
+    \fp_new_function:n { aux } % works
+    \fp_new_function:n { tmpa } % works
+    \fp_new_function:n { pi }
+    \fp_new_function:n { inf }
+    \iow_term:x { \fp_to_tl:n { 1 / inf + pi + tmpa(1) + aux(-1) + chk(+1) } }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% !TODO not supported yet
+% \TEST { Loops }
+%   {
+%     \fp_new_function:n { X }
+%     \fp_new_function:n { Y }
+%     \fp_set_function:nnn { X } { x } { sin(X(x)) }
+%     \fp_show:n { X(1.1) }
+%     \fp_set_function:nnn { X } { x } { 1 }
+%     \fp_set_function:nnn { X } { x } { Y(x)**X(x) }
+%     \fp_show:n { X }
+%     \fp_set_function:nnn { Y } { y } { X(y) + 1 }
+%     \fp_show:n { Y }
+%   }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Function~parameters~are~created~locally }
+  {
+    \OMIT
+    \cs_set:Npn \test_temp:
+      { \TYPE { \fp_to_tl:n { a + FUNCA(1) } } }
+    \TIMO
+    \fp_new_function:n { FUNCA }
+    \fp_set_function:nnn { FUNCA } { a } { a * 10 }
+    \test_temp: % error, unknown fp word "a"
+    \fp_new_variable:n { a }
+    \test_temp: % symbolic, FUNCA(1) evaluated to 10
+    \fp_set_variable:nn { a } { 32 }
+    \test_temp: % numeric, 42
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Function~parameters~are~cleared~locally }
+  {
+    \fp_new_variable:n { E }
+    \fp_new_function:n { PS }
+    \fp_set_variable:nn { E } { 2 }
+    \fp_set_function:nnn { PS } { E } { E**E }
+    \fp_show:n { E**2 + PS(3) } % numeric
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Set~and~clear~both~act~locally }
+  {
+    \OMIT
+    \cs_set:Npn \test_temp:
+      { \TYPE { \fp_to_tl:n { FUNCP(3, 4) * 10 - 7 } } }
+    \TIMO
+    \fp_new_function:n { FUNCP }
+    \test_temp: % symbolic
+
+    \group_begin:
+      \fp_set_function:nnn { FUNCP } { i, j } { i*i + j*j }
+      \test_temp: % numeric
+    \group_end:
+    \test_temp: % symbolic
+    \fp_set_function:nnn { FUNCP } { i, j } { i*i + j*j }
+    \test_temp: % numeric
+
+    \group_begin:
+      \fp_clear_function:n { FUNCP }
+      \test_temp: % symbolic
+    \group_end:
+    \test_temp: % numeric
+    \fp_clear_function:n { FUNCP }
+    \test_temp: % symbolic
+  }
+
+\END
diff --git a/l3kernel/testfiles/m3fp-symbolic002.tlg b/l3kernel/testfiles/m3fp-symbolic002.tlg
new file mode 100644
index 000000000..45117fab2
--- /dev/null
+++ b/l3kernel/testfiles/m3fp-symbolic002.tlg
@@ -0,0 +1,175 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Yukai Chou
+============================================================
+TEST 1: Functions in symbolic expression
+============================================================
+Defining \__fp_parse_word_A:N on line ...
+Defining \__fp_parse_word_B:N on line ...
+Defining \__fp_parse_word_C:N on line ...
+((A(3))+(B(3.141592653589793, 3)))+((C(0, 0, 0.2))*(B(3.141592653589793, 6)))
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+((A(3))+(B(3.141592653589793, 3)))+((C(0, 0, 0.2))*(B(3.141592653589793, 6)))
+((A(3))+(1.047197551196598))+((C(0, 0, 0.2))*(0.5235987755982988))
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+Defining \__fp_parse_word__iii:N on line ...
+Defining \__fp_parse_word_k:N on line ...
+((A(3))+(1.047197551196598))+(-1.047197551196598)
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+3
+============================================================
+============================================================
+TEST 2: Conversions
+============================================================
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX Error: Invalid operation fp_to_decimal((A(1))+((B(1...
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX Error: Invalid operation fp_to_dim((A(1))+((B(1, 2)...
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX Error: Invalid operation fp_to_int((A(1))+((B(1, 2)...
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX Error: Invalid operation fp_to_scientific((A(1))+((...
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+0
+0pt
+0
+nan
+(A(1))+((B(1, 2))^(2))
+============================================================
+============================================================
+TEST 3: Unary minus and not
+============================================================
+-((A(1))+((B(1, 2))^(2)))
+!((A(1))+((B(1, 2))^(2)))
+============================================================
+============================================================
+TEST 4: Various function names
+============================================================
+! LaTeX Error: Floating point identifier '' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier '' but this may
+only contain ASCII letters.
+! LaTeX Error: Floating point identifier 'a b' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'a b' but this
+may only contain ASCII letters.
+! LaTeX Error: Floating point identifier 'a12' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'a12' but this
+may only contain ASCII letters.
+! LaTeX Error: Floating point identifier '\\' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier '\\' but this
+may only contain ASCII letters.
+! LaTeX Error: Floating point identifier 'a_b' invalid.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'a_b' but this
+may only contain ASCII letters.
+Defining \__fp_parse_word_chk:N on line ...
+Defining \__fp_parse_word_aux:N on line ...
+Defining \__fp_parse_word_tmpa:N on line ...
+! LaTeX Error: Floating point identifier 'pi' already defined.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'pi' but this
+name has already been used elsewhere.
+Defining \__fp_parse_word_pi:N on line ...
+! LaTeX Error: Floating point identifier 'inf' already defined.
+For immediate help type H <return>.
+ ...                                              
+l. ...  }
+LaTeX has been asked to create a new floating point identifier 'inf' but this
+name has already been used elsewhere.
+Defining \__fp_parse_word_inf:N on line ...
+(((1)/(inf(pi(tmpa(1)))))+(aux(-1)))+(chk(1))
+============================================================
+============================================================
+TEST 5: Function parameters are created locally
+============================================================
+Defining \__fp_parse_word_FUNCA:N on line ...
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_a:N on line ...
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX Error: Unknown fp word a.
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+nan
+Defining \__fp_parse_word_a:N on line ...
+(a)+(10)
+42
+============================================================
+============================================================
+TEST 6: Function parameters are cleared locally
+============================================================
+Defining \__fp_parse_word_E:N on line ...
+Defining \__fp_parse_word_PS:N on line ...
+Defining \__fp_parse_word__i:N on line ...
+> E**2+PS(3)=31.
+<recently read> }
+l. ...  }
+============================================================
+============================================================
+TEST 7: Set and clear both act locally
+============================================================
+Defining \__fp_parse_word_FUNCP:N on line ...
+((FUNCP(3, 4))*(10))-(7)
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+243
+((FUNCP(3, 4))*(10))-(7)
+Defining \__fp_parse_word__i:N on line ...
+Defining \__fp_parse_word_i:N on line ...
+Defining \__fp_parse_word__ii:N on line ...
+Defining \__fp_parse_word_j:N on line ...
+243
+((FUNCP(3, 4))*(10))-(7)
+243
+((FUNCP(3, 4))*(10))-(7)
+============================================================





More information about the latex3-commits mailing list.