%% %% This is file `kvsetkeys-test3.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% kvsetkeys.dtx (with options: `test2,noetex') %% %% This is a generated file. %% %% Copyright (C) 2006, 2007, 2009 by %% Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3 of this license or (at your option) any later %% version. 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 kvsetkeys.dtx %% and the derived files %% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv, %% kvsetkeys-example.tex, kvsetkeys-test1.tex, %% kvsetkeys-test2.tex, kvsetkeys-test3.tex. %% \NeedsTeXFormat{LaTeX2e} \nofiles \documentclass{article} \let\SavedUnexpanded\unexpanded \let\unexpanded\UNDEFINED \makeatletter \chardef\KVS@TestMode=1 % \makeatother \usepackage{kvsetkeys}[2009/12/12] \let\unexpanded\SavedUnexpanded \usepackage{qstest} \IncludeTests{*} \LogTests{log}{*}{*} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfresettimer\endcsname\relax \else \makeatletter \newcount\SummaryTime \newcount\TestTime \SummaryTime=\z@ \newcommand*{\PrintTime}[2]{% \typeout{% [Time #1: \strip@pt\dimexpr\number#2sp\relax\space s]% }% }% \newcommand*{\StartTime}[1]{% \renewcommand*{\TimeDescription}{#1}% \pdfresettimer }% \newcommand*{\TimeDescription}{}% \newcommand*{\StopTime}{% \TestTime=\pdfelapsedtime \global\advance\SummaryTime\TestTime \PrintTime\TimeDescription\TestTime }% \let\saved@qstest\qstest \let\saved@endqstest\endqstest \def\qstest#1#2{% \saved@qstest{#1}{#2}% \StartTime{#1}% }% \def\endqstest{% \StopTime \saved@endqstest }% \AtEndDocument{% \PrintTime{summary}\SummaryTime }% \makeatother \fi \makeatletter \def\@makeactive#1{% \catcode`#1=13\relax } \@makeactive\, \def,{\errmessage{COMMA}} \@makeother\, \@makeactive\= \def={\errmessage{EQUALS}} \@makeother\= \begin{qstest}{normalize}{normalize,active-chars,space-removal}% \def\Test#1#2{% \@makeother\,% \@makeother\=% \scantokens{\toks@={#2}}% \edef\Result{\the\toks@}% \@makeother\,% \@makeother\=% \@Test{#1}% \@makeactive\,% \@Test{#1}% \@makeactive\=% \@Test{#1}% \@makeother\,% \@Test{#1}% \@makeother\=% }% \def\@Test#1{% \scantokens{\kv@normalize{#1}}% \expandafter\expandafter\expandafter\Expect \expandafter\expandafter\expandafter {\expandafter\kv@list\expandafter}\expandafter{\Result}% \Expect*{\ifx\kv@list\Result true\else false\fi}{true}% }% \Test{}{,}% \Test{,}{,}% \Test{,,}{,}% \Test{,,,}{,}% \Test{ , }{,}% \Test{{a}}{,{a},}% \Test{,{a}}{,{a},}% \Test{{a},}{,{a},}% \Test{{a},{b}}{,{a},{b},}% \Test{{b}={c},{}=,{}={},{d}=}{,{b}={c},{}=,{}={},{d}=,}% \Test{{}}{,{},}% \Test{{},{},{}}{,{},{},{},}% \Test{=}{,=,}% \Test{=,=,=}{,=,=,=,}% \def\TestSet#1{% \Test{#1#1}{,}% \Test{#1#1,#1#1}{,}% \Test{#1#1,#1#1,#1#1}{,}% \Test{#1#1#1#1#1}{,}% \Test{{a}#1#1=#1#1{b}}{,{a}={b},}% }% \TestSet{ }% \begingroup \let\saved@normalize\kv@normalize \def\kv@normalize#1{% \saved@normalize{#1}% \@onelevel@sanitize\kv@list \@onelevel@sanitize\Result }% \Test{#,#=#,{#}={#},{#}=,{#}}{,#,#=#,{#}={#},{#}=,{#},}% \endgroup \begingroup \def\Test#1#2{% \edef\Result{#2}% \@Test{#1}% }% \Test{{ a = b }}{,{ a = b },}% \@makeactive\,% \Test{{,}}{\string,{\noexpand,}\string,}% \@makeother\,% \@makeactive\=% \Test{a={=}}{,a\string={\noexpand=},}% \endgroup \Test{a=b}{,a=b,}% \Test{a={b}}{,a={b},}% \Test{a ={b}}{,a={b},}% \Test{a= {b}}{,a={b},}% \Test{a = {b}}{,a={b},}% \Test{a = {b} ,}{,a={b},}% \Test{a}{,a,}% \Test{ a}{,a,}% \Test{a }{,a,}% \Test{ a }{,a,}% \Test{, a ,}{,a,}% \Test{, a b ,}{,a b,}% \Test{,a ,}{,a,}% \Test{ a =}{,a=,}% \Test{ a = }{,a=,}% \Test{a =}{,a=,}% \Test{{a} =}{,{a}=,}% \Test{{a}= {}}{,{a}={},}% \Test{, a = {}}{,a={},}% \Test{a,,b}{,a,b,}% \Test{a=\fi}{,a=\fi,}% \Test{a=\iffalse}{,a=\iffalse,}% \Test{a=\iffalse,b=\fi}{,a=\iffalse,b=\fi,}% \end{qstest} \begin{qstest}{parse}{parse,brace-removal} \def\Processor#1#2{% \expandafter\Expect\expandafter{\kv@key}{#1}% \toks@{#2}% \edef\x{\the\toks@}% \ifx\kv@value\relax \Expect*{\the\toks@}{}% \def\Value{<>}% \else \edef\Value{[\the\toks@]}% \@onelevel@sanitize\Value \fi \toks@{#1}% \ifx\Result\@empty \edef\Result{[\the\toks@]=\Value}% \else \edef\Result{\Result,[\the\toks@]=\Value}% \fi \@onelevel@sanitize\Result }% \def\Test#1#2{% \sbox0{% \let\Result\@empty \kv@parse{#1}\Processor \Expect*{\Result}{#2}% }% \Expect*{\the\wd0}{0.0pt}% }% \Test{}{}% \Test{{}}{}% \Test{{{}}}{[]=<>}% \Test{{{{}}}}{[{}]=<>}% \Test{a}{[a]=<>}% \Test{{a}}{[a]=<>}% \Test{{a}}{[a]=<>}% \Test{{{a}}}{[a]=<>}% \Test{{{{a}}}}{[{a}]=<>}% \Test{a=}{[a]=[]}% \Test{{a}=}{[a]=[]}% \Test{{{a}}=}{[{a}]=[]}% \Test{a={}}{[a]=[]}% \Test{{a}={{}}}{[a]=[{}]}% \Test{a=b}{[a]=[b]}% \Test{a=\fi}{[a]=[\fi]}% \Test{a=\iffalse}{[a]=[\iffalse]}% \Test{a=\iffalse,b=\fi}{[a]=[\iffalse],[b]=[\fi]}% \Test{{ a = b }}{[ a ]=[ b ]}% \Test{{{ a = b }}}{[ a = b ]=<>}% \end{qstest} \begin{qstest}{comma}{comma,parse} \def\Processor#1{% \expandafter\Expect\expandafter{\comma@entry}{#1}% \toks@{#1}% \ifx\Result\@empty \edef\Result{[\the\toks@]}% \else \edef\Result{\Result,[\the\toks@]}% \fi \@onelevel@sanitize\Result }% \def\Test#1#2{% \sbox0{% \let\Result\@empty \comma@parse{#1}\Processor \Expect*{\Result}{#2}% }% \Expect*{\the\wd0}{0.0pt}% }% \Test{}{}% \Test{{}}{}% \Test{{{}}}{[{}]}% \Test{a}{[a]}% \Test{{a}}{[a]}% \Test{{{a}}}{[{a}]}% \Test{a=}{[a=]}% \Test{a\fi}{[a\fi]}% \Test{a\iffalse}{[a\iffalse]}% \Test{\iffalse,\fi}{[\iffalse],[\fi]}% \Test{ a , b , c }{[a],[b],[c]}% \Test{ { } ,{ }, { }, { } , { } }{[ ],[ ],[ ],[ ],[ ]}% \Test{ {{}} ,{{}}, {{}}, {{}} , {{}} }{[{}],[{}],[{}],[{}],[{}]}% \end{qstest} \begin{document} \end{document} \endinput %% %% End of file `kvsetkeys-test3.tex'.