-
Notifications
You must be signed in to change notification settings - Fork 1
/
expectedResults.py
70 lines (55 loc) · 1.44 KB
/
expectedResults.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import sys
result = set()
def readDataFile(readFile, writeFile):
f = open(readFile,"r");
wf = open(writeFile,"a");
for line in f:
a = line.split()
if(len(a) < 1):
continue;
if(a[0] == "I"):
result.add(int(a[1]));
wf.write("Insert " + a[1] + "\n");
elif(a[0] == "D"):
if(len(a) == 2) :
result.discard(int(a[1]));
wf.write("Deleted " + a[1] + "\n")
elif(len(a) == 3) :
low = int(a[1])
high = int(a[2]) + 1
dRange = list(range(low,high))
dRange.sort()
wf.write("Deleted: [" );
for i in dRange :
if( i in result):
result.discard(i)
wf.write( str(i) + " ");
wf.write("]\n");
elif(a[0] == "Q"):
#query
if(int(a[1]) in result) :
wf.write("Found " + a[1] + "\n")
else:
wf.write("Did not find " + a[1] + "\n")
elif(a[0] == "S"):
#range scan
low = a[1]
high = a[2]
selectRange = range(int(low),int(high) + 1)
rangeScanResult = list(result.intersection(selectRange))
rangeScanResult.sort();
if(len(rangeScanResult) > 0 ):
wf.write("Found rangeScan [" );
for i in rangeScanResult :
wf.write( str(i) + " ");
wf.write("]\n");
else:
wf.write("Did not find rangeScan [" + low + ", " + high + "]\n");
def main(args):
print("Inside")
if ('-h' in args) or not(len(args) == 3):
print('USAGE:\n\t%s <inputFile> <outputFile>' % (args[0]))
sys.exit(0)
readDataFile(args[1],args[2]);
if __name__ == '__main__':
main(sys.argv)