//NOTEST // The following code tests the application of the className method // against the "fundemental" types of Clipper. // These tests were written by Dave Pearson // and are placed into the public domain. PROCEDURE Main() // First, try all the types. This checks that the VM can cope. AEval( { NIL, {}, "", 0, CToD( "" ), .F., {|| NIL }, ErrorNew() }, ; {| x | QOut( x:className() ) } ) // Now try against values "in the code". This checks that the // compiler can cope. ? ? NIL:className() ? {}:className() ? "":className() ? 0:className() ? CToD( "" ):className() ? .F. :className() ? {|| NIL }:className() ? ErrorNew():className() // For fun, do it again while ensuring the parser doesn't care about // whitespace. ? ? NIL : className() ? {} : className() ? "" : className() ? 0 : className() ? CToD( "" ) : className() ? .F. : className() ? {|| NIL } : className() ? ErrorNew() : className() // Now for some sillier ones. If the above work the following should // work too. ? ? ( NIL:className() ):className() ? ? ( ( NIL:className() ):className() ):className() RETURN