From af82949af79d223247ae81caf967d80b4d6ddeff Mon Sep 17 00:00:00 2001
From: "Peter J. Keleher" <keleher@cs.umd.edu>
Date: Mon, 26 Aug 2019 13:08:26 -0400
Subject: [PATCH] auto

---
 project0/SQLTesting.py | 111 -----------------------------------------
 project0/queries.py    |  87 --------------------------------
 2 files changed, 198 deletions(-)
 delete mode 100644 project0/SQLTesting.py
 delete mode 100644 project0/queries.py

diff --git a/project0/SQLTesting.py b/project0/SQLTesting.py
deleted file mode 100644
index e809967..0000000
--- a/project0/SQLTesting.py
+++ /dev/null
@@ -1,111 +0,0 @@
-import psycopg2
-import os
-import sys
-import datetime
-from collections import Counter
-from types import *
-import argparse
-
-from queries import *
-from answers import *
-
-parser = argparse.ArgumentParser()
-parser.add_argument('-v', '--verbose', help="Print out the query results and more details", required=False, action="store_true")
-parser.add_argument('-i', '--interactive', help="Run queries one at a time, and wait for user to proceed", required=False, action="store_true")
-parser.add_argument('-q', '--query', type = int, help="Only run and check the given query number", required=False)
-args = parser.parse_args()
-
-verbose = args.verbose
-interactive = args.interactive
-
-# Check if x and y are almost near match
-def match(x, y):
-	if type(x) != type(y):
-		return False
-	if type(x) is int or type(x) is bool:
-		return x == y
-	if type(x) is float:
-		return (abs(x - y) < 0.01)
-	# Conver to string and compare
-	# print "Found type: {}".format(type(x))
-	return str(x).strip() == str(y).strip()
-
-def compareAnswers(ans, correct):
-	# Special case empty answer
-	if len(ans) == 0:
-		if len(correct) == 0:
-			return ("Score = 4: Both answers empty", 4)
-		else:
-			return ("Score = 0: Empty answer", 0)
-
-	if len(correct) == 0:
-		return ("Score = 0: The answer should have been empty", 0)
-
-
-	# If the number of columns is not correct, no score
-	if len(ans[0]) != len(correct[0]):
-		return ("Score = 0: Incorrect Number of Columns", 0)
-
-	# If the number of rows in the answer is the same, check for near-exact match
-	if len(ans) == len(correct):
-		c = Counter()
-		for (t1, t2) in zip(ans, correct):
-			for (t1x, t2x) in zip(t1, t2):
-				c[match(t1x, t2x)] += 1
-		if c[False] == 0:
-			return ("Score = 4: Exact or Near-exact Match", 4)
-
-	# Let's try to do an approximate match
-	flattened_ans = Counter([str(x).strip() for y in ans for x in y])
-	flattened_correct = Counter([str(x).strip() for y in correct for x in y])
-
-
-	jaccard = sum((flattened_correct & flattened_ans).values()) * 1.0/sum((flattened_correct | flattened_ans).values())
-	if verbose:
-		print("------ Creating word counts and comparing answers ---------")
-		print(flattened_correct )
-		print(flattened_ans)
-		print("Jaccard Coefficient: {}".format(jaccard) )
-
-	if jaccard > 0.9:
-		if len(ans) == len(correct):
-			return ("Score = 3: Very similar, but not an exact match (possibly wrong sort order)", 3)
-		else:
-			return ("Score = 2: Very similar, but incorrect number of rows", 2)
-	if jaccard > 0.5:
-		return ("Score = 1: Somewhat similar answers", 1)
-	return ("Score = 0: Answers too different", 0)
-
-conn = psycopg2.connect("dbname=flights user=ubuntu")
-cur = conn.cursor()
-
-totalscore = 0
-for i in range(1, 11):
-	# If a query is specified by -q option, only do that one
-	if args.query is None or args.query == i:
-		try:
-			print("========== Executing Query {}".format(i))
-			print(queries[i])
-			cur.execute(queries[i])
-			ans = cur.fetchall()
-
-			if verbose:
-				print("--------- Your Query Answer ---------")
-				for t in ans:
-					print(t)
-				print("--------- Correct Answer ---------")
-				for t in correctanswers[i]:
-					print(t)
-
-			# Compare with correctanswers[i]
-			cmp_res = compareAnswers(ans, correctanswers[i])
-			print("-----> " + cmp_res[0])
-			totalscore += cmp_res[1]
-			if interactive:
-				input('Press enter to proceed')
-				os.system('clear')
-		except:
-			print(sys.exc_info())
-			raise
-
-print("-----------------> Total Score = {}".format(totalscore))
diff --git a/project0/queries.py b/project0/queries.py
deleted file mode 100644
index 8b1d3e7..0000000
--- a/project0/queries.py
+++ /dev/null
@@ -1,87 +0,0 @@
-queries = ["" for i in range(0, 11)]
-
-### 0. List all airport codes and their cities. Order by the city name in the increasing order. 
-### Output column order: airportid, city
-
-queries[0] = """
-select airportid, city 
-from airports
-order by city;
-"""
-
-### 1. Write a query to find the names of the customers whose names are at least 15 characters long, and the second letter in the  name is "l".
-### Order by name.
-queries[1] = """
-select 0;
-"""
-
-
-### 2. Write a query to find any customers who flew on their birthday.  Hint: Use "extract" function that operates on the dates. 
-### Order output by Customer Name.
-### Output columns: all columns from customers
-queries[2] = """
-select 0;
-"""
-
-### 3. Write a query to generate a list: (source_city, source_airport_code, dest_city, dest_airport_code, number_of_flights) for all source-dest pairs with at least 3 flights. 
-### Order first by number_of_flights in decreasing order, then source_city in the increasing order, and then dest_city in the increasing order.
-### Note: You must generate the source and destination cities along with the airport codes.
-queries[3] = """
-select 0;
-"""
-
-### 4. Find the name of the airline with the maximum number of customers registered as frequent fliers.
-### Output only the name of the airline. If multiple answers, order by name.
-queries[4] = """
-select 0;
-"""
-
-### 5. For all flights from OAK to IAD, list the flight id, airline name, and the 
-### duration in hours and minutes. So the output will have 4 fields: flightid, airline name,
-### hours, minutes. Order by flightid.
-queries[5] = """
-select 0;
-"""
-
-### 6. Write a query to find empty flights (flight, flight date) on any date
-###	which someone flew. Assume that if anyone flew on a given date, all
-###	flights took off as scheduled, with or without passengers. Order by flight
-###	id in increasing order, and then by date in increasing order. 
-queries[6] = """
-select 0;
-"""
-
-### 7. Write a query to generate a list of customers who don't list Southwest as their frequent flier airline, but
-### actually flew the most (by number of flights) on that airline.
-### Output columns: customerid, customer_name
-### Order by: customerid
-queries[7] = """
-select 0;
-"""
-
-# fall17
-### 8. Write a query to generate a list of customers where the interval between first and last flight is 5 days.
-### Order by the customer name. 
-queries[8] = """
-select 0;
-"""
-
-
-# fall17
-### 9. Name of customer whose max interval between any two consecutive flights is 4 days.
-### The output should be simply a list of names
-### Order by the customer name. 
-queries[9] = """
-select 0;
-"""
-
-### 10. Write a query that outputs a list: (AirportID, Airport-rank), where we rank the airports 
-### by the total number of flights that depart that airport. So the airport with the maximum number
-### of flights departing gets rank 1, and so on. If two airports tie, then they should 
-### both get the same rank, and the next rank should be skipped.
-### Order the output in increasing order by rank, and then airport ID.
-
-queries[10] = """
-select 0;
-"""
-
-- 
GitLab