% $Id$
% Public domain.
% Originally written 2018 by David Carlisle, Bruno Le Floch.
\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
\def\space{ }
\let\bgroup{ \let\egroup}
START
EXPANDED TEST 1
% Check the primitive exists
expanded \ifx\expanded\relax failed\else exists\fi
EXPANDED TEST 2
% Simple expansion test
\def\aaa{x}
\def\bbb{\aaa\aaa}
\expandafter\def\expandafter\ccc\expandafter{\expanded{\bbb,\aaa}}
\meaning\ccc
EXPANDED TEST 3: the
% Expanding \the
\expanded{\bbb,\the\numexpr100+20+3\relax}
EXPANDED TEST 4: macro param
% Constructed #1 is still #1
\expandafter\def\expandafter\ddd\expandafter#\expanded{1{#\number--1}}
\meaning\ddd
EXPANDED TEST 5: torture
% Torture test from Bruno Le Floch testing various tricky interactions
% \expanded\relax\space\ifincsname \BOOM\fi{\ifincsname \BOOM\fi}
T5.1:
\detokenize\expandafter{\expanded{#,\noexpand\aaa,\unexpanded{\aaa}}}
T5.2:
\detokenize\expandafter{\expanded{#,\unexpanded{#}}}
T5.3:
\detokenize\expandafter{\expanded\expandafter{\noexpand\aaa}}
T5.4:
\detokenize\expandafter{\expanded\expandafter{\unexpanded{\aaa}}}
T5.5:
\detokenize\expanded{{\aaa\noexpand\aaa\noexpand\noexpand\noexpand\aaa}}
T5.6:
\detokenize\expanded{{\expanded{\aaa\noexpand\aaa\noexpand\noexpand\noexpand\aaa}}}
T5.7:
\toks0{\aaa}
\detokenize\expanded{{\the\toks0}}
T5.8:
\expanded\bgroup\meaning\egroup}
T5.9:
\edef\foo{\expanded{##}}
\meaning\foo
END
\end