diff options
| author | J08nY | 2018-04-26 01:16:51 +0200 |
|---|---|---|
| committer | J08nY | 2018-04-26 01:16:51 +0200 |
| commit | 3b0d002c7987297d90e450def097cd8cdb65444c (patch) | |
| tree | 60d4d21cf966fea19a139bc9c480c4bc21e88b0d /src/cz/crcs/ectester/common/ec/EC_Data.java | |
| parent | 80e68ffb16310bbabdf4cb9111616baf180a7c97 (diff) | |
| download | ECTester-3b0d002c7987297d90e450def097cd8cdb65444c.tar.gz ECTester-3b0d002c7987297d90e450def097cd8cdb65444c.tar.zst ECTester-3b0d002c7987297d90e450def097cd8cdb65444c.zip | |
Better sort EC_Data, handle errors better in wrong curves suite.
Diffstat (limited to 'src/cz/crcs/ectester/common/ec/EC_Data.java')
| -rw-r--r-- | src/cz/crcs/ectester/common/ec/EC_Data.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/common/ec/EC_Data.java b/src/cz/crcs/ectester/common/ec/EC_Data.java index d7eec4d..1b81eae 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Data.java +++ b/src/cz/crcs/ectester/common/ec/EC_Data.java @@ -219,6 +219,19 @@ public abstract class EC_Data implements Comparable<EC_Data> { public int compareTo(EC_Data o) { if (o == this) return 0; if (this.id != null && o.id != null) { + int minLength = Math.min(this.id.length(), o.id.length()); + for (int i = 0; i < minLength; i++) { + if (this.id.charAt(i) != o.id.charAt(i)) { + String thisEnd = this.id.substring(i); + String oEnd = o.id.substring(i); + try { + int thisIndex = Integer.parseInt(thisEnd); + int oIndex = Integer.parseInt(oEnd); + return Integer.compare(thisIndex, oIndex); + } catch (NumberFormatException ignored) { + } + } + } return this.id.compareTo(o.id); } else if (this.id == null && o.id == null) { if (Arrays.equals(this.data, o.data)) { |
