summaryrefslogtreecommitdiff
path: root/components/rtgui/utils/perfect_hash/example-Python
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2013-02-21 13:11:10 +0800
committerBernard Xiong <[email protected]>2013-02-21 13:11:10 +0800
commit385f682d7bfce81ba281faaffb0a250ab94985b8 (patch)
tree94fca413db98390d21dc18938067a7a90e470a6f /components/rtgui/utils/perfect_hash/example-Python
parentc4bd0023f8da136c5788f47f9a0170a77f627be9 (diff)
remove RT-Thread GUI from RT-Thread temporary
Diffstat (limited to 'components/rtgui/utils/perfect_hash/example-Python')
-rw-r--r--components/rtgui/utils/perfect_hash/example-Python/Graph.py40
-rw-r--r--components/rtgui/utils/perfect_hash/example-Python/Makefile15
-rw-r--r--components/rtgui/utils/perfect_hash/example-Python/PerfHash.py40
-rw-r--r--components/rtgui/utils/perfect_hash/example-Python/generate_hash.py38
4 files changed, 0 insertions, 133 deletions
diff --git a/components/rtgui/utils/perfect_hash/example-Python/Graph.py b/components/rtgui/utils/perfect_hash/example-Python/Graph.py
deleted file mode 100644
index f2927719b4..0000000000
--- a/components/rtgui/utils/perfect_hash/example-Python/Graph.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python
-"""
-This example shows how to use the class Graph.
-
-The class implements a graph with 'N' vertices. First, you connect the
-graph with edges, which have a desired value associated. Then the vertex
-values are assigned, which will fail if the graph is cyclic. The vertex
-values are assigned such that the two values corresponding to an edge add
-up to the desired edge value (mod N).
-"""
-import sys
-
-sys.path.append('..')
-from perfect_hash import Graph
-
-G = Graph(3)
-assert G.assign_vertex_values() == True
-
-# Now we make an edge between vertex 0 and 1 with desired edge value 2:
-G.connect(0, 1, 2)
-
-# Make another edge 1:2 with desired edge value 1:
-G.connect(1, 2, 1)
-
-# The graph is still acyclic, and assigning values works:
-assert G.assign_vertex_values() == True
-assert G.vertex_values == [0, 2, 2]
-
-# What do these values mean?
-# When you add the values for edge 0:1 you get 0 + 2 = 2, as desired.
-# For edge 1:2 you add 2 + 2 = 4 = 1 (mod 3), as desired.
-
-# Adding edge 0:2 produces a loop, so the graph is no longer acyclic.
-# Assigning values fails.
-G.connect(0, 2, 0)
-
-assert G.assign_vertex_values() == False
-
-
-print 'OK'
diff --git a/components/rtgui/utils/perfect_hash/example-Python/Makefile b/components/rtgui/utils/perfect_hash/example-Python/Makefile
deleted file mode 100644
index 4f6dd13850..0000000000
--- a/components/rtgui/utils/perfect_hash/example-Python/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-all:
- true
-
-
-clean:
- true
-
-
-test:
- ./generate_hash.py
- ./PerfHash.py
- ./Graph.py
-
diff --git a/components/rtgui/utils/perfect_hash/example-Python/PerfHash.py b/components/rtgui/utils/perfect_hash/example-Python/PerfHash.py
deleted file mode 100644
index 49131c2b63..0000000000
--- a/components/rtgui/utils/perfect_hash/example-Python/PerfHash.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python
-"""
-This example shows how to use the class PerfHash.
-
-This class is designed for creating perfect hash tables at run time,
-which should be avoided, in particulat inserting new keys is
-prohibitively expensive since a new perfect hash table needs to be
-constructed. However, this class can be usefull for testing.
-
-For practical programming purposes in Python the class PerfHash
-should never be used because Python's built-in dictionary is very
-efficient and always faster than PerfHash.
-"""
-
-import sys
-
-sys.path.append('..')
-from perfect_hash import PerfHash
-
-
-month = dict(zip('jan feb mar apr may jun jul aug sep oct mov dec'.split(),
- range(1, 13)))
-
-d = PerfHash(month)
-
-
-for m in month:
- assert month[m] == d[m]
-
-d[True] = False
-
-assert d[True] == False
-
-for i in xrange(10): # very expensive
- d[i] = 2*i*i + 3*i -7
-
-assert d[4] == 37
-
-
-print 'OK'
diff --git a/components/rtgui/utils/perfect_hash/example-Python/generate_hash.py b/components/rtgui/utils/perfect_hash/example-Python/generate_hash.py
deleted file mode 100644
index dfe9f92186..0000000000
--- a/components/rtgui/utils/perfect_hash/example-Python/generate_hash.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python
-"""
-This example shows how to use the function generate_hash.
-
-generate_hash(kdic, Hash)
-
-returns hash functions f1 and f2, and G for a perfect minimal hash.
-Input is dictionary 'kdic' with the keys and desired hash values.
-'Hash' is a random hash function generator, that means Hash(N) returns a
-returns a random hash function which returns hash values from 0..N-1.
-"""
-
-import sys
-import random, string
-
-sys.path.append('..')
-from perfect_hash import generate_hash
-
-
-
-month = dict(zip('jan feb mar apr may jun jul aug sep oct mov dec'.split(),
- range(1, 13)))
-
-def mkRandHash(N):
- """
- Return a random hash function which returns hash values from 0..N-1.
- """
- junk = "".join(random.choice(string.letters + string.digits)
- for i in xrange(10))
- return lambda key: hash(junk + str(key)) % N
-
-
-f1, f2, G = generate_hash(month, mkRandHash)
-
-for k, h in month.items():
- assert h == ( G[f1(k)] + G[f2(k)] ) % len(G)
-
-print 'OK'