\documentclass{article}
\usepackage{texdraw}
\usepacakge{amsmath}

\begin{document}

% Test TeXdraw macros - unusual cases

% $Id: ttexdraw.tex 1.8 1999/11/15 TeXdraw-v2r3 $

% check for extraneous characters in texdraw.tex
\setbox0=\vbox{\input texdraw }
\message {texdraw.tex box size:
         height: \the\ht0, width: \the\wd0, depth: \the\dp0}

\bigskip
\bigskip

% check for a zero sized box for a zero sized TeXdraw
\setbox0=\hbox{\begin{texdraw}
              \lvec (0 0)
              \end{texdraw}}
\message {TeXdraw box size:
         height: \the\ht0, width: \the\wd0, depth: \the\dp0}

\bigskip
\bigskip

\begin{texdraw}
% text only, should be no PostScript file
 \rtext td:-45 (2 2){Test Text}
\end{texdraw}

\bigskip
\bigskip

\let\et=\etexdraw
\def\etexdraw{\drawbb\et}

\begin{texdraw}
% blank lines OK?
% box should be 2in by 2in
% arc should go from inside to outside the box

% \larc if no initial point defined
\larc r:1 sd:45 ed:135

% \ifill if path is empty
\move (2 2)
\ifill f:0.5

\lvec (1 1)

\end{texdraw}

\bigskip
\bigskip

% Testing restoration of position after segments
\begin{texdraw}
 \lvec (1 1)
 \bsegment
   \linewd 0.03
   \lvec (1 0)
 \esegment
 \bsegment
   \lvec (0 -1)
  \esegment
\end{texdraw}

\bigskip
\bigskip

% Check t:W arrows, should wipe out the line under the rightmost arrow head
\begin{texdraw}
 \arrowheadtype t:W
 \arrowheadsize l:0.9 w:0.6
 \linewd 0.05
 \bsegment
   \move (0 1)
   \lvec (3 3)
   \bsegment
     \move (-3 -3)
     \avec (0 0)
   \esegment
   \lvec (3 2)
 \esegment
 \move (3 0)
 \bsegment
   \move (0 1)
   \lvec (3 3)
   \rmove (0 0)
   \bsegment
     \move (-3 -3)
     \avec (0 0)
   \esegment
   \lvec (3 2)
 \esegment
\end{texdraw}

\bigskip
\bigskip

% Check that paths continue under filled circles
\begin{texdraw}
 \bsegment
   \lvec (1 1)
   \bsegment
     \move (-0.25 -0.25)
     \fcir f:0.8 r:0.5
   \esegment
   \lvec (1 0)
 \esegment
 \move (3 0)
 \bsegment
   \lvec (1 1)
   \rmove (0 0)
   \bsegment
     \move (-0.25 -0.25)
     \fcir f:0.8 r:0.5
   \esegment
   \lvec (1 0)
 \esegment
\end{texdraw}

\bigskip
\bigskip

% Check that positions are restored correctly when the move pending and path
% in progress flags are set

\begin{texdraw}
 \linewd 0.045
 \lvec (1 0)
 \bsegment
   \move (0 -1)
   \bsegment
   \esegment
   \lvec (0 0)
 \esegment
 \lvec (2 0)
\end{texdraw}

\bigskip
\bigskip

% Check \everytexdraw and \fellip
\everytexdraw={\fellip f:0.8 rx:2.5 ry:1.0 }
\begin{texdraw}
 \lvec (0 0.75)
\end{texdraw}
\everytexdraw={}

\bigskip
\bigskip

\def\ptext#1{\writeps{ gsave /Times-Roman findfont 41.6667
scalefont setfont (#1) dup stringwidth exch neg 2 div exch neg 2 div rmoveto
show grestore }}

\begin{texdraw}
 \move( 0 0)
 \move(-1 -1) \rlvec( 2 0) \rlvec( 0 2) \rlvec( -2 0) \rlvec( 0 -2)
 \lfill f:.8
 \move( 0 .2)
 \textref h:C v:C
 \htext{This is a very long sentence to illustrate my point}
 \move( 0 -.2)
 \ptext{This is a very long sentence to illustrate my point}
 \move( 0 0)
 \move(-.5 -.5) \rlvec( 1 0) \rlvec( 0 1) \rlvec( -1 0) \rlvec( 0 -1)
 \lfill f:.9
\etexdraw

\bigskip
\bigskip

% This example, with texdraw invoked from \text from within an equation,
% ends up invoking texdraw 8 times (\gather together with \mathchoice).
% A hook was built in to texdraw to detect half of these cases.  Now only
% 4 identical copies of the PS file are generated.
% Note: To avoid generating the extra PS files, use a \savebox to create the
%       drawing and then place the box where desired.
\begin{equation}
\text{
    \begin{texdraw}
    \move(0 0)\lcir r:0.1
    \end{texdraw}
    }
\end{equation}

\bigskip
\bigskip

% extraneous data: generate an error message
\message{ <<<<< Expect an error message: type return >>>>>}
\btexdraw
 \move (2 2)
 \move (3 3)
% Put in a spurious character
a
\end{texdraw}

\end{document}