Charlie

Thanks for your thoughtful and interesting reply.  You perhaps saw my 
reply to Paul McNett.

The theoretical aspect was what interested me  .... and your reply sheds 
light on that.

Paul

Charlie Coleman wrote:
> Generally speaking to perform "mathematical" proofs, you need to express 
> your functions in mathematical language.
>
> If you can do that, then yes, there are ways to "prove" equivalence. But 
> the code you show is string processing, and I'm not up on my math 
> representations. That might border on Matrix Algerbra - oh the joys of 
> eigenvalues, eigenvectors, and eigenspace.
>
> But unless there's some specific project requirement to provide such a 
> proof (don't laugh, some Gov work I've done would require it), you could 
> just do a fairly exhaustive test (as someone else mentioned).
>
> For example, you could set something up like this:
>
> ------------------------------------------------------
> FUNCTION CompareStripFuncs
>
> *-- assumes you have your StripCharsNew and StripCharsOld already defined,
> *--      and that cValidChars has been defined
> *-- build a cursor of string values you want to check. E.g. if you 
> archived/logged
> *--      the old values that "failed" in some table/file somewhere
>
> CREATE CURSOR curResultCompare (checked_string C(100), result_old C(100), 
> result_new C(100))
>
> *-- curValues2Check is the cursor that has all the strings that you want to 
> check - I'll assume the
> *--     name of the field that holds the string is cBadCharString
>
> SELECT curValues2Check
> SCAN
>          INSERT INTO curResultCompare ;
>                  (cChecked_string, ;
>                  cRresult_old, ;
>                  cRresult_new) ;
>          VALUES ;
>                  (cBadCharString, ;
>                  StripCharsOld(cBadCharString, cValidChars), ;
>                  StripCharsNew(cBadCharString, cValidChars))
> ENDSCAN
>
> SELECT COUNT(*) as num_not_match FROM cResultCompare ;
>          WHERE cResult_old <> cResult_new ;
>          INTO CURSOR curNumFailed NOFILTER
>
> m.nReturnNonMatch = curNumFailed.num_not_match
> *-- Or you could pull the actual values that didn't compare right, BROWSE 
> it, REPORT it, etc.
>
> USE IN (SELECT('curResultCompare'))
> USE IN (SELECT('curNumFailed'))
>
> RETURN m.nReturnNonMatch
> ------------------------------------------------------
>
> If you don't have a set of strings from past events, you could write up a 
> program to generate a few million variations, interspersing bad character 
> values in various positions. Note, you could probably reduce the required 
> number of bad char positions to 1st, last, and randomly in middle (and 
> cases where all characters are bad). If you need to document the results 
> (aka for a project requirement) you could "check in" the test data and a 
> report of the results. If you just need it for your peace of mind, you can 
> be satisfied when you see they gave the same result.
>
> -Charlie
>
>
>   



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to