0c54755937c3349d4f2199d37c3180a8e267f0ae
mmaddren
  Thu Mar 10 16:17:49 2011 -0800
Added testing suite for RaFile. Will have to edit slightly in the future once comment implementation is finished.
diff --git python/ucscgenomics/rafile/OrderedDict.py python/ucscgenomics/rafile/OrderedDict.py
new file mode 100644
index 0000000..33c9d92
--- /dev/null
+++ python/ucscgenomics/rafile/OrderedDict.py
@@ -0,0 +1,49 @@
+class OrderedDict(dict):
+    """
+    A Dictionary ADT that preserves ordering of its keys through a parallel
+    list.
+
+    Inherits from the dict built-in python class, extending functionality 
+    relevant to ordering.
+    """
+
+
+    def __init__(self):
+        self.__ordering = list()
+        dict.__init__(self)
+
+
+    def __setitem__(self, key, value):
+        dict.__setitem__(self, key, value)
+        self.__ordering.append(key)
+   
+    def __delitem__(self, key):
+        dict.__delitem(self, key)
+        self.__ordering.remove(key)
+
+
+    def __iter__(self):
+        for item in self.__ordering:
+            yield item
+
+
+    def iterkeys(self):
+        self.__iter__()
+
+
+    def itervalues(self):
+        for item in self.__ordering:
+            yield self[item]
+
+
+    def iteritems(self):
+        for item in self.__ordering:
+            yield item, self[item]
+
+
+    def __str__(self):
+        str = ''
+        for item in self.iteritems():
+            str += item.__str__() + '\n'
+        return str
+