Jump to content

Module:Yesno/testcases

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by DePiep (talk | contribs) at 13:33, 23 March 2013. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = require('Module:UnitTests')

function p:test_basic_arg1()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno}}', '{{Yesno}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|}}', '{{Yesno|}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| }}', '{{Yesno| }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   }}', '{{Yesno|   }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=}}', '{{Yesno|1=}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes}}', '{{Yesno|yes}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS}}', '{{Yesno|yeS}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES}}', '{{Yesno|YES}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1}}', '{{Yesno|1}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes}}', '{{Yesno|1=yes}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no}}', '{{Yesno|no}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO}}', '{{Yesno|nO}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0}}', '{{Yesno|0}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no}}', '{{Yesno|1=no}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans}}', '{{Yesno|beans}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans }}', '{{Yesno| beans }}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬}}', '{{Yesno|¬}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ }}', '{{Yesno| ¬ }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ }}', '{{Yesno|1= ¬ }}')
end

function p:test_tricky_input()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬}}', '{{Yesno|¬}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|{{#expr:5/5}}}}', '{{Yesno|{{#expr:5/5}}}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|{{#expr:0/5}}}}', '{{Yesno|{{#expr:0/5}}}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| }}', '{{Yesno| }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| }}', '{{Yesno| }}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|<br/>}}', '{{Yesno|<br/>}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|\n}}', '{{Yesno|\n}}')

-- whitespace within
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|y e s}}', '{{Yesno|y e s}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|n o}}', '{{Yesno|n o}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|true}}', '{{Yesno|true}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|false}}', '{{Yesno|false}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|01}}', '{{Yesno|01}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| 01 }}', '{{Yesno| 01 }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| 0 }}', '{{Yesno| 0 }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| 00 }}', '{{Yesno| 00 }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|00}}', '{{Yesno|00}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|000}}', '{{Yesno|000}}')
-- nbsp
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| }}', '{{Yesno| }}')
-- U+0000 (NUL)
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|&#x0000;}}', '{{Yesno|&#x0000;}}')
-- tab char U+0009  x x (not sure if that character is in here)
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| }}', '{{Yesno| }}')
end

function p:test_set_yes()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes=aye}}', '{{Yesno|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||yes=aye}}', '{{Yesno||yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |yes=aye}}', '{{Yesno| |yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |yes=aye}}', '{{Yesno|   |yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|yes=aye}}', '{{Yesno|1=|yes=aye}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|yes=aye}}', '{{Yesno|yes|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|yes=aye}}', '{{Yesno|yeS|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|yes=aye}}', '{{Yesno|YES|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|yes=aye}}', '{{Yesno|1|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|yes=aye}}', '{{Yesno|1=yes|yes=aye}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|yes=aye}}', '{{Yesno|no|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|yes=aye}}', '{{Yesno|nO|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|yes=aye}}', '{{Yesno|0|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|yes=aye}}', '{{Yesno|1=no|yes=aye}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|yes=aye}}', '{{Yesno|beans|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |yes=aye}}', '{{Yesno| beans |yes=aye}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|yes=aye}}', '{{Yesno|¬|yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |yes=aye}}', '{{Yesno| ¬ |yes=aye}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |yes=aye}}', '{{Yesno|1= ¬ |yes=aye}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=1|Yes=aye}}', '{{Yesno|1=1|Yes=aye}}')

end

function p:test_set_no()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no=nay}}', '{{Yesno|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||no=nay}}', '{{Yesno||no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |no=nay}}', '{{Yesno| |no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |no=nay}}', '{{Yesno|   |no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|no=nay}}', '{{Yesno|1=|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|no=nay}}', '{{Yesno|yes|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|no=nay}}', '{{Yesno|yeS|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|no=nay}}', '{{Yesno|YES|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|no=nay}}', '{{Yesno|1|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|no=nay}}', '{{Yesno|1=yes|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|no=nay}}', '{{Yesno|no|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|no=nay}}', '{{Yesno|nO|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|no=nay}}', '{{Yesno|0|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|no=nay}}', '{{Yesno|1=no|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|no=nay}}', '{{Yesno|beans|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |no=nay}}', '{{Yesno| beans |no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|no=nay}}', '{{Yesno|¬|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |no=nay}}', '{{Yesno| ¬ |no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |no=nay}}', '{{Yesno|1= ¬ |no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=1|No=nay}}', '{{Yesno|1=1|No=nay}}')
end

function p:test_set_yes_no()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes=aye|no=nay}}', '{{Yesno|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||yes=aye|no=nay}}', '{{Yesno||yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |yes=aye|no=nay}}', '{{Yesno| |yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |yes=aye|no=nay}}', '{{Yesno|   |yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|yes=aye|no=nay}}', '{{Yesno|1=|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|yes=aye|no=nay}}', '{{Yesno|yes|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|yes=aye|no=nay}}', '{{Yesno|yeS|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|yes=aye|no=nay}}', '{{Yesno|YES|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|yes=aye|no=nay}}', '{{Yesno|1|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|yes=aye|no=nay}}', '{{Yesno|1=yes|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|yes=aye|no=nay}}', '{{Yesno|no|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|yes=aye|no=nay}}', '{{Yesno|nO|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|yes=aye|no=nay}}', '{{Yesno|0|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|yes=aye|no=nay}}', '{{Yesno|1=no|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|yes=aye|no=nay}}', '{{Yesno|beans|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |yes=aye|no=nay}}', '{{Yesno| beans |yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|yes=aye|no=nay}}', '{{Yesno|¬|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |yes=aye|no=nay}}', '{{Yesno| ¬ |yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |yes=aye|no=nay}}', '{{Yesno|1= ¬ |yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=1|Yes=aye|No=nay}}', '{{Yesno|1=1|Yes=aye|No=nay}}')
--whitespace in
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|01|yes= aye |no= nay }}', '{{Yesno|01|yes= aye |no= nay }}')
end

function p:test_set_blank()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|blank=emptystring}}', '{{Yesno|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||blank=emptystring}}', '{{Yesno||blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |blank=emptystring}}', '{{Yesno| |blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |blank=emptystring}}', '{{Yesno|   |blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|blank=emptystring}}', '{{Yesno|1=|blank=emptystring}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|blank=emptystring}}', '{{Yesno|yes|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|blank=emptystring}}', '{{Yesno|yeS|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|blank=emptystring}}', '{{Yesno|YES|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|blank=emptystring}}', '{{Yesno|1|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|blank=emptystring}}', '{{Yesno|1=yes|blank=emptystring}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|blank=emptystring}}', '{{Yesno|no|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|blank=emptystring}}', '{{Yesno|nO|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|blank=emptystring}}', '{{Yesno|0|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|blank=emptystring}}', '{{Yesno|1=no|blank=emptystring}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|blank=emptystring}}', '{{Yesno|beans|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |blank=emptystring}}', '{{Yesno| beans |blank=emptystring}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|blank=emptystring}}', '{{Yesno|¬|blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |blank=emptystring}}', '{{Yesno| ¬ |blank=emptystring}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |blank=emptystring}}', '{{Yesno|1= ¬ |blank=emptystring}}')
end

function p:test_set_def()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|def=dflt}}', '{{Yesno|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||def=dflt}}', '{{Yesno||def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |def=dflt}}', '{{Yesno| |def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |def=dflt}}', '{{Yesno|   |def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|def=dflt}}', '{{Yesno|1=|def=dflt}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|def=dflt}}', '{{Yesno|yes|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|def=dflt}}', '{{Yesno|yeS|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|def=dflt}}', '{{Yesno|YES|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|def=dflt}}', '{{Yesno|1|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|def=dflt}}', '{{Yesno|1=yes|def=dflt}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|def=dflt}}', '{{Yesno|no|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|def=dflt}}', '{{Yesno|nO|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|def=dflt}}', '{{Yesno|0|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|def=dflt}}', '{{Yesno|1=no|def=dflt}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|def=dflt}}', '{{Yesno|beans|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |def=dflt}}', '{{Yesno| beans |def=dflt}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|def=dflt}}', '{{Yesno|¬|def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |def=dflt}}', '{{Yesno| ¬ |def=dflt}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |def=dflt}}', '{{Yesno|1= ¬ |def=dflt}}')
end

function p:test_set_notsign()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬=notsign}}', '{{Yesno|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||¬=notsign}}', '{{Yesno||¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |¬=notsign}}', '{{Yesno| |¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |¬=notsign}}', '{{Yesno|   |¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|¬=notsign}}', '{{Yesno|1=|¬=notsign}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|¬=notsign}}', '{{Yesno|yes|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|¬=notsign}}', '{{Yesno|yeS|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|¬=notsign}}', '{{Yesno|YES|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|¬=notsign}}', '{{Yesno|1|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|¬=notsign}}', '{{Yesno|1=yes|¬=notsign}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|¬=notsign}}', '{{Yesno|no|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|¬=notsign}}', '{{Yesno|nO|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|¬=notsign}}', '{{Yesno|0|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|¬=notsign}}', '{{Yesno|1=no|¬=notsign}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|¬=notsign}}', '{{Yesno|beans|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |¬=notsign}}', '{{Yesno| beans |¬=notsign}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬=notsign}}', '{{Yesno|¬|¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |¬=notsign}}', '{{Yesno| ¬ |¬=notsign}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |¬=notsign}}', '{{Yesno|1= ¬ |¬=notsign}}')
end

function p:test_set_all_options()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno||¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno| |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|   |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|1=|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|yes|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|yeS|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|YES|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|1|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|1=yes|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|no|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|nO|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|0|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|1=no|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|beans|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno| beans |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|¬|¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno| ¬ |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}', '{{Yesno|1= ¬ |¬=notsign|blank=emptystring|def=dflt|yes=aye|no=nay}}')
end

function p:test_set_all_options_the_same()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno||¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno| |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|   |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|1=|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|yes|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|yeS|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|YES|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|1|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|1=yes|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|no|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|nO|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|0|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|1=no|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|beans|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno| beans |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|¬|¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno| ¬ |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}', '{{Yesno|1= ¬ |¬=xyz|blank=xyz|def=xyz|yes=xyz|no=xyz}}')
end

function p:test_set_all_options_blank()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬=|blank=|def=|yes=|no=}}', '{{Yesno|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||¬=|blank=|def=|yes=|no=}}', '{{Yesno||¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |¬=|blank=|def=|yes=|no=}}', '{{Yesno| |¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |¬=|blank=|def=|yes=|no=}}', '{{Yesno|   |¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|¬=|blank=|def=|yes=|no=}}', '{{Yesno|1=|¬=|blank=|def=|yes=|no=}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|¬=|blank=|def=|yes=|no=}}', '{{Yesno|yes|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|¬=|blank=|def=|yes=|no=}}', '{{Yesno|yeS|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|¬=|blank=|def=|yes=|no=}}', '{{Yesno|YES|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|¬=|blank=|def=|yes=|no=}}', '{{Yesno|1|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|¬=|blank=|def=|yes=|no=}}', '{{Yesno|1=yes|¬=|blank=|def=|yes=|no=}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|¬=|blank=|def=|yes=|no=}}', '{{Yesno|no|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|¬=|blank=|def=|yes=|no=}}', '{{Yesno|nO|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|¬=|blank=|def=|yes=|no=}}', '{{Yesno|0|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|¬=|blank=|def=|yes=|no=}}', '{{Yesno|1=no|¬=|blank=|def=|yes=|no=}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|¬=|blank=|def=|yes=|no=}}', '{{Yesno|beans|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |¬=|blank=|def=|yes=|no=}}', '{{Yesno| beans |¬=|blank=|def=|yes=|no=}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬=|blank=|def=|yes=|no=}}', '{{Yesno|¬|¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |¬=|blank=|def=|yes=|no=}}', '{{Yesno| ¬ |¬=|blank=|def=|yes=|no=}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |¬=|blank=|def=|yes=|no=}}', '{{Yesno|1= ¬ |¬=|blank=|def=|yes=|no=}}')
end

function p:test_set_all_options_blankspace()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬= |blank= |def= |yes= |no= }}', '{{Yesno|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||¬= |blank= |def= |yes= |no= }}', '{{Yesno||¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |¬= |blank= |def= |yes= |no= }}', '{{Yesno| |¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |¬= |blank= |def= |yes= |no= }}', '{{Yesno|   |¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|¬= |blank= |def= |yes= |no= }}', '{{Yesno|1=|¬= |blank= |def= |yes= |no= }}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|¬= |blank= |def= |yes= |no= }}', '{{Yesno|yes|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|¬= |blank= |def= |yes= |no= }}', '{{Yesno|yeS|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|¬= |blank= |def= |yes= |no= }}', '{{Yesno|YES|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|¬= |blank= |def= |yes= |no= }}', '{{Yesno|1|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|¬= |blank= |def= |yes= |no= }}', '{{Yesno|1=yes|¬= |blank= |def= |yes= |no= }}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|¬= |blank= |def= |yes= |no= }}', '{{Yesno|no|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|¬= |blank= |def= |yes= |no= }}', '{{Yesno|nO|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|¬= |blank= |def= |yes= |no= }}', '{{Yesno|0|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|¬= |blank= |def= |yes= |no= }}', '{{Yesno|1=no|¬= |blank= |def= |yes= |no= }}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|¬= |blank= |def= |yes= |no= }}', '{{Yesno|beans|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |¬= |blank= |def= |yes= |no= }}', '{{Yesno| beans |¬= |blank= |def= |yes= |no= }}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬= |blank= |def= |yes= |no= }}', '{{Yesno|¬|¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |¬= |blank= |def= |yes= |no= }}', '{{Yesno| ¬ |¬= |blank= |def= |yes= |no= }}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |¬= |blank= |def= |yes= |no= }}', '{{Yesno|1= ¬ |¬= |blank= |def= |yes= |no= }}')
end

function p:test_set_options_yes_no_notsign()
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes=aye|¬=notsign|yes=aye|no=nay}}', '{{Yesno|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||¬=notsign|yes=aye|no=nay}}', '{{Yesno||¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| |¬=notsign|yes=aye|no=nay}}', '{{Yesno| |¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|   |¬=notsign|yes=aye|no=nay}}', '{{Yesno|   |¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=|¬=notsign|yes=aye|no=nay}}', '{{Yesno|1=|¬=notsign|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|¬=notsign|yes=aye|no=nay}}', '{{Yesno|yes|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yeS|¬=notsign|yes=aye|no=nay}}', '{{Yesno|yeS|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|YES|¬=notsign|yes=aye|no=nay}}', '{{Yesno|YES|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1|¬=notsign|yes=aye|no=nay}}', '{{Yesno|1|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=yes|¬=notsign|yes=aye|no=nay}}', '{{Yesno|1=yes|¬=notsign|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|¬=notsign|yes=aye|no=nay}}', '{{Yesno|no|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|nO|¬=notsign|yes=aye|no=nay}}', '{{Yesno|nO|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|0|¬=notsign|yes=aye|no=nay}}', '{{Yesno|0|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1=no|¬=notsign|yes=aye|no=nay}}', '{{Yesno|1=no|¬=notsign|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|beans|¬=notsign|yes=aye|no=nay}}', '{{Yesno|beans|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| beans |¬=notsign|yes=aye|no=nay}}', '{{Yesno| beans |¬=notsign|yes=aye|no=nay}}')

    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬=notsign|yes=aye|no=nay}}', '{{Yesno|¬|¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno| ¬ |¬=notsign|yes=aye|no=nay}}', '{{Yesno| ¬ |¬=notsign|yes=aye|no=nay}}')
    self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|1= ¬ |¬=notsign|yes=aye|no=nay}}', '{{Yesno|1= ¬ |¬=notsign|yes=aye|no=nay}}')
end

function p:test_documentation_examples()
--From template documentation (after correction edits today)
--The template discerns five possible logical outputs depending on the first parameter (input if you will).
--In its simplest usage these will all be either "yes" or "" (blank - nothing no characters).

self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes}}', '{{yesno|yes}}') --result "yes"  (also applies to "Yes", "YeS", etc, "Y", "y" and "1")
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no}}', '{{yesno|no}}') --result "" (also applies to "No", "NO", "nO", "N", "n" and "0")
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno}}', '{{yesno}}') --result ""
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬}}', '{{yesno|¬}}') --result ""
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|purplemonkeydishwasher}}', '{{yesno|purplemonkeydishwasher}}') -- result "yes" (also applies to any other value not given above).

--Each of these can be over-ridden.
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|yes=bacon}}', '{{yesno|yes|yes=bacon}}') --result "bacon":  {{yesno|yes|yes=bacon}} (also applies to "Yes", "YeS", etc, "Y", "y" and "1")
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|no=ham}}', '{{yesno|no|no=ham}}') --result "ham": {{yesno|no|no=ham}} (also applies to "No", "NO", "nO", "N", "n" and "0")
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||blank=eggs}}', '{{yesno||blank=eggs}}') --result "eggs": {{yesno||blank=eggs}}
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||no=ham}}', '{{yesno||no=ham}}') --result "ham": {{yesno||no=ham}}
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno||blank=eggs|no=ham}}', '{{yesno||blank=eggs|no=ham}}') --result "eggs": {{yesno||blank=eggs|no=ham}}
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|¬|¬=sausage}}', '{{yesno|¬|¬=sausage}}') --result "sausage": {{yesno|¬|¬=sausage}}
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|purplemonkeydishwasher|def=cup-of-tea}}', '{{yesno|purplemonkeydishwasher|def=cup-of-tea}}') --result "cup-of-tea": {{yesno|purplemonkeydishwasher|def=cup-of-tea}}}}') (also applies to any other value not given above).
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|purplemonkeydishwasher|yes=bacon}}', '{{yesno|purplemonkeydishwasher|yes=bacon}}') --result "bacon":{{yesno|purplemonkeydishwasher|yes=bacon}}
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|purplemonkeydishwasher|def=cup-of-tea|yes=bacon}}', '{{yesno|purplemonkeydishwasher|def=cup-of-tea|yes=bacon}}') --result "cup-of-tea": {{yesno|purplemonkeydishwasher|def=cup-of-tea|yes=bacon}}
--This may be used (apparently perversely) thus:

self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|yes|yes=no|no=yes}}', '{{yesno|yes|yes=no|no=yes}}') --result "no"
self:preprocess_equals_preprocess('{{#invoke:Yesno|yesno|no|yes=no|no=yes}}', '{{yesno|no|yes=no|no=yes}}') --result "yes"
--This creates a logical inversion.

end

return p