There are 11 possible combinations recognized by CHIRP: all nine combinations of (none,
tone, dtcs) for transmit, and (none, tone, dtcs) for receive, and for the Tone->Tone and DTCS->DTCS cases, the tx and rx are either equal or not equal.  The FT-4 radio can support
nine of these eleven cases, all except Tone->DTCS and DTCS->Tone.

I need my code to do three things:
  1) work correctly with the UI for all cases
  2) pass the BruteForce unit test
  3) pass the CopyAll unit test.

I can write code that does any two of these three things, but not all three.
This one fails BruteForce:
TONE_MODES = ["", "Tone", "TSQL",  "DTCS",  "DTCS-R",  "TSQL-R",   "Cross"]
CROSS_MODES = ["Tone->Tone", "DTCS->",  "DTCS->DTCS", "->DTCS"]

BruteForce wants to always get back what it gives you.

This one causes the UI to inhibit certain inputs:
TONE_MODES = ["", "Tone", "TSQL",  "DTCS",  "DTCS-R",  "TSQL-R",   "Cross"]
CROSS_MODES = [, "DTCS->DTCS", "->DTCS"] 
This is interesting because if you get the inputs into the columns by loading a spreadsheet as in the CopyAll test, (e.g., TSQL, 100.0 88.5) CHIRP happily sends it to the driver, but yyou cannot enter it.