Thanks Thor, all implemented :).
I used the StringChecker as a reference and unfortunately seem to have found a bug, if selecting the option it ignore line feeds the comparitor is actualy comparing the expected value against itself.
org.knime.testing.internal.diffcheckers.StringChecker
Lines 114-116
if (m_ignoreLinefeeds.getBooleanValue()) {
BufferedReader rA = new BufferedReader(new StringReader(valueA.getStringValue()));
BufferedReader rB = new BufferedReader(new StringReader(valueA.getStringValue()));
the last line should probably be:
BufferedReader rB = new BufferedReader(new StringReader(valueB.getStringValue()));
The other issue I'm having relates to the "ignore timestamp line" dialog option I've added. The value of this setting is properly tracked as long as the Table Difference Checker hasn't failed. In the following scenario the bug occurs:
- Set dialog option "Ignore timestamp line" to false
- Execute node with differeing timestamped MolValues so node fails
- Open dialog and check "Ignore timestamp line"
- Execute node which now passes
- Open dialog and uncheck "Ignore timestamp line"
- Close dialog
- Open dialog and "Ignore timestamp line" option is still checked
The bug doesn't happen if I replace the default to be false instead of true.
// Bug occurs
private final SettingsModelBoolean m_ignoreTimeStampLine = new SettingsModelBoolean("ignoreTimestampLine", true);
// Bug does not occur
private final SettingsModelBoolean m_ignoreTimeStampLine = new SettingsModelBoolean("ignoreTimestampLine", false);
However this doesn't seem to be the only time it fails. I've taken a video of the behaviour:
When default value is true (bug):
https://drive.google.com/open?id=0B-F_gyChdDb9X2t3eVRXZENJcW8
When default value is false (no bug):
https://drive.google.com/open?id=0B-F_gyChdDb9VmFQNlZQRko1eDA
Download URL as the video quality seems to have been reduced by Google drive: https://drive.google.com/open?id=0B-F_gyChdDb9aWV5RUZ4NV84OU0
Cheers
Sam