%PDF- %PDF-
| Direktori : /data/old/usr/share/texlive/texmf-dist/doc/latex/oberdiek/test/ |
| Current File : //data/old/usr/share/texlive/texmf-dist/doc/latex/oberdiek/test/letltxmacro-test2.tex |
%%
%% This is file `letltxmacro-test2.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% letltxmacro.dtx (with options: `test2')
%%
%% This is a generated file.
%%
%% Project: letltxmacro
%% Version: 2010/09/02 v1.4
%%
%% Copyright (C) 2008, 2010 by
%% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. This version of this license is in
%% http://www.latex-project.org/lppl/lppl-1-3c.txt
%% and the latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is Heiko Oberdiek.
%%
%% This work consists of the main source file letltxmacro.dtx
%% and the derived files
%% letltxmacro.sty, letltxmacro.pdf, letltxmacro.ins, letltxmacro.drv,
%% letltxmacro-showcases.tex, letltxmacro-test1.tex,
%% letltxmacro-test2.tex.
%%
\NeedsTeXFormat{LaTeX2e}
\nofiles
\documentclass{minimal}
\usepackage{letltxmacro}[2010/09/02]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
\makeatletter
\def\TestDef#1{%
\begingroup
\@makeother\\%
\@makeother\ %
\expandafter\@TestDef\csname #1\endcsname
}
\def\@TestDef#1#2{%
\edef\a{\expandafter\strip@prefix\meaning#1}%
\edef\b{\detokenize{#2}}%
\ifx\a\b
\else
\typeout{1 [\a]}%
\typeout{2 [\b]}%
\fi
\endgroup
\Expect*{\expandafter\strip@prefix\meaning#1}*{\detokenize{#2}}%
}
\def\TestEquals#1#2{%
\Expect*{%
\expandafter\ifx\csname#1\expandafter\endcsname
\csname#2\endcsname
equals%
\else
wrong%
\fi
}{equals}%
}
\def\SaveA{%
\let\SavedA\TestA
\expandafter\let\csname\string\SavedA\expandafter\endcsname
\csname\string\TestA\endcsname
\expandafter\let\csname SavedA \expandafter\endcsname
\csname TestA \endcsname
}
\def\CheckA{%
\TestEquals{SavedA}{TestA}%
\TestEquals{\string\SavedA}{\string\TestA}%
\TestEquals{SavedA }{TestA }%
}
\begin{qstest}{robust}{robust}
\begingroup
\DeclareRobustCommand*{\TestA}{Test}%
\SaveA
\TestDef{TestA}{\protect \TestA }%
\CheckA
\DeclareRobustCommand{\TestA}{Test}%
\SaveA
\TestDef{TestA}{\protect \TestA }%
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\protect \TestB }%
\TestEquals{TestB }{TestA }%
\CheckA
\GlobalLetLtxMacro\TestC\TestA
\CheckA
\endgroup
\TestDef{TestC}{\protect \TestC }%
\DeclareRobustCommand{\TestA}{Test}%
\TestEquals{TestC }{TestA }%
\end{qstest}
\begin{qstest}{default}{default}
\begingroup
\newcommand{\TestA}[1][\relax default \empty]{TestA #1}%
\SaveA
\TestDef
{TestA}{\@protected@testopt \TestA \\TestA {\relax default \empty }}%
\LetLtxMacro\TestB\TestA
\TestDef
{TestB}{\@protected@testopt \TestB \\TestB {\relax default \empty }}%
\CheckA
\TestEquals{\string\TestB}{\string\TestA}%
\GlobalLetLtxMacro\TestC\TestA
\CheckA
\endgroup
\TestDef
{TestC}{\@protected@testopt \TestC \\TestC {\relax default \empty }}%
\newcommand{\TestA}[1][\relax default \empty]{TestA #1}%
\TestEquals{\string\TestC}{\string\TestA}%
\end{qstest}
\begin{qstest}{robustdefault}{robustdefault}
\begingroup
\DeclareRobustCommand{\TestA}[1][\default]{TestA}%
\SaveA
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\protect \TestB }%
\TestDef{TestB }{\@protected@testopt \TestB \\TestB {\default }}%
\CheckA
\GlobalLetLtxMacro\TestC\TestA
\CheckA
\endgroup
\TestDef{TestC}{\protect \TestC }%
\TestDef{TestC }{\@protected@testopt \TestC \\TestC {\default }}%
\end{qstest}
\begin{qstest}{plain}{plain}
\LetLtxMacro\NewRelax\relax
\Expect*{\meaning\relax}*{\string\relax}%
\Expect*{\meaning\NewRelax}*{\string\relax}%
\LetLtxMacro\NewHbox\hbox
\Expect*{\meaning\hbox}*{\string\hbox}%
\Expect*{\meaning\NewHbox}*{\string\hbox}%
\LetLtxMacro\NewEmpty\empty
\Expect*{\meaning\empty}{macro:->}%
\Expect*{\meaning\NewEmpty}{macro:->}%
\def\TestA{\iffalse}%
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\iffalse }%
\TestEquals{TestA}{TestB}%
\end{qstest}
\usepackage{etoolbox}[2008/06/22]
\begin{qstest}{oldnewrobustcmd}{oldnewrobustcmd}
\begingroup
\protected\edef\TestA{%
\noexpand\@protected@testopt
\noexpand\TestA
\expandafter\noexpand\csname\string\TestA\endcsname
{\noexpand\default}%
}%
\expandafter\protected\expandafter
\def\csname\string\TestA\endcsname{TestA}%
\SaveA
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\@protected@testopt \TestB \\TestB {\default }}%
\protected\edef\TestC{%
\noexpand\@protected@testopt
\noexpand\TestB
\expandafter\noexpand\csname\string\TestB\endcsname
{\noexpand\default}%
}%
\TestEquals{TestB}{TestC}%
\CheckA
\GlobalLetLtxMacro\TestD\TestA
\CheckA
\endgroup
\TestDef{TestD}{\@protected@testopt \TestD \\TestD {\default }}%
\protected\edef\TestC{%
\noexpand\@protected@testopt
\noexpand\TestD
\expandafter\noexpand\csname\string\TestD\endcsname
{\noexpand\default}%
}%
\TestEquals{TestD}{TestC}%
\end{qstest}
\begin{qstest}{newrobustcmd}{newrobustcmd}
\begingroup
\newrobustcmd{\TestA}[1][\default]{TestA}%
\SaveA
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\@testopt \\TestB {\default }}%
\protected\edef\TestC{%
\noexpand\@testopt
\expandafter\noexpand\csname\string\TestB\endcsname
{\noexpand\default}%
}%
\TestEquals{TestB}{TestC}%
\CheckA
\GlobalLetLtxMacro\TestD\TestA
\CheckA
\endgroup
\TestDef{TestD}{\@testopt \\TestD {\default }}%
\protected\edef\TestC{%
\noexpand\@testopt
\expandafter\noexpand\csname\string\TestD\endcsname
{\noexpand\default}%
}%
\TestEquals{TestD}{TestC}%
\end{qstest}
\begin{qstest}{robustifyopt}{robustifyopt}
\newcommand{\TestA}[2][\default]{}%
\TestDef{TestA}{\@protected@testopt \TestA \\TestA {\default }}%
\robustify\TestA
\TestDef{TestA}{\@protected@testopt \TestA \\TestA {\default }}%
\protected\edef\TestC{%
\noexpand\@protected@testopt
\noexpand\TestA
\expandafter\noexpand\csname\string\TestA\endcsname
{\noexpand\default}%
}%
\TestEquals{TestA}{TestC}%
\SaveA
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\@protected@testopt \TestB \\TestB {\default }}%
\protected\edef\TestC{%
\noexpand\@protected@testopt
\noexpand\TestB
\expandafter\noexpand\csname\string\TestB\endcsname
{\noexpand\default}%
}%
\TestEquals{TestB}{TestC}%
\CheckA
\end{qstest}
\begin{qstest}{robustifydeclare}{robustifydeclare}
\DeclareRobustCommand\TestA{\iffalse}%
\robustify\TestA
\SaveA
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\iffalse }%
% before etoolbox 2008/06/22: \protected\long\def
% since etoolbox 2008/06/22: \protected\def
\protected\def\TestC{\iffalse}%
\TestEquals{TestB}{TestC}%
\CheckA
\end{qstest}
\begin{qstest}{robustifydeclarelong}{robustifydeclarelong}
\DeclareRobustCommand\TestA[1]{\iffalse}%
\robustify\TestA
\SaveA
\LetLtxMacro\TestB\TestA
\TestDef{TestB}{\iffalse }%
% before etoolbox 2008/06/22: \protected\long\def
% since etoolbox 2008/06/22: \protected\def
\protected\long\def\TestC#1{\iffalse}%
\TestEquals{TestB}{TestC}%
\CheckA
\end{qstest}
\csname @@end\endcsname
\endinput
%%
%% End of file `letltxmacro-test2.tex'.