From c61dfbe5593a9257d39e84261d48472a74975afa Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 1 Jan 2006 20:59:22 -0500 Subject: [PATCH] good patch darcs-hash:20060102015922-5007d-8e200889e132bcf7ad9b3b6c19039e9afed8d691.gz --- src/edu/berkeley/sbp/misc/RegressionTests.java | 8 +++++--- src/edu/berkeley/sbp/util/IntegerTopology.java | 4 ++-- src/edu/berkeley/sbp/util/Range.java | 5 +++++ src/edu/berkeley/sbp/util/Topology.java | 1 + 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/RegressionTests.java b/src/edu/berkeley/sbp/misc/RegressionTests.java index a88c8a4..1fd97f1 100644 --- a/src/edu/berkeley/sbp/misc/RegressionTests.java +++ b/src/edu/berkeley/sbp/misc/RegressionTests.java @@ -82,7 +82,7 @@ public class RegressionTests { System.out.println("PARSE FAILED"); System.out.print("\033[0m"); } else { - System.out.println("\r \r"); + System.out.print("\r \r"); } HashSet outs = new HashSet(); if (output != null) for(String s : output) outs.add(s.trim()); @@ -90,20 +90,22 @@ public class RegressionTests { for (Tree r : results) { String s = r.toString().trim(); if (outs.contains(s)) { outs.remove(s); continue; } + if (!bad) System.out.println(input); System.out.print("\033[33m"); System.out.println(" GOT: " + s); bad = true; } for(String s : outs) { + if (!bad) System.out.println(input); System.out.print("\033[31m"); System.out.println("EXPECTED: " + s); bad = true; } if (bad) { - System.out.print("\033[0m"); + System.out.println("\033[0m"); return true; } - System.out.println("\033[32mPASS\033[0m"); + System.out.println("\r\033[32mPASS\033[0m "); return false; } } diff --git a/src/edu/berkeley/sbp/util/IntegerTopology.java b/src/edu/berkeley/sbp/util/IntegerTopology.java index e9f01df..cac19e9 100644 --- a/src/edu/berkeley/sbp/util/IntegerTopology.java +++ b/src/edu/berkeley/sbp/util/IntegerTopology.java @@ -9,8 +9,8 @@ import edu.berkeley.sbp.*; /** implementation of Topology for any class for which there is a mapping to the ints */ public class IntegerTopology implements Topology { private final Range.Set rs; - - public Range.Set getRanges() { return rs; /*FIXME: copy?*/ } + + public Range.Set getRanges() { return new Range.Set(rs); } public IntegerTopology() { this(new Range.Set()); } public IntegerTopology(V v) { this(v.toInt()); } diff --git a/src/edu/berkeley/sbp/util/Range.java b/src/edu/berkeley/sbp/util/Range.java index 399d2bb..714cd83 100644 --- a/src/edu/berkeley/sbp/util/Range.java +++ b/src/edu/berkeley/sbp/util/Range.java @@ -298,6 +298,11 @@ public class Range { for(Range r : ranges) add(r); } + public Set(Iterable it) { + this(); + for(Range r : it) add(r); + } + /** * @param rs The set with which to union with this set. * @return A new set that represents the union of this and the passed set. diff --git a/src/edu/berkeley/sbp/util/Topology.java b/src/edu/berkeley/sbp/util/Topology.java index 4f36f08..2756aae 100644 --- a/src/edu/berkeley/sbp/util/Topology.java +++ b/src/edu/berkeley/sbp/util/Topology.java @@ -21,6 +21,7 @@ public interface Topology { public Topology intersect(Topology t); public Topology minus(Topology t); public Topology union(Topology t); + public Topology complement(); public boolean disjoint(Topology t); public boolean containsAll(Topology t); -- 1.7.10.4