예제 #1
0
	def test_college_details(self):
		''' The function should return either a single row or no rows '''

		self.valid_row = handlers.college_details(self.dataframe, self.valid_university_name, self.valid_branch_name)
		self.invalid_row1 = handlers.college_details(self.dataframe, self.valid_university_name, self.invalid_branch_name)
		self.invalid_row2 = handlers.college_details(self.dataframe, self.invalid_university_name, self.invalid_branch_name)
		self.invalid_row3 = handlers.college_details(self.dataframe, self.invalid_university_name, self.valid_branch_name)
	
		self.assertEquals(self.valid_row.shape[0], 1)
		self.assertEquals(self.invalid_row1.shape[0], 0)
		self.assertEquals(self.invalid_row2.shape[0], 0)
		self.assertEquals(self.invalid_row3.shape[0], 0)
예제 #2
0
def university_crime_explorer(dataframe):
    '''Handles the features of first GUI'''

    GUI.start_user_interface(dataframe)
    university_name = GUI.get_uni()
    branch_name = GUI.get_branch()

    print "Details about %s (%s) is being generated. Please wait..." % (
        university_name, branch_name)

    college_instance = handlers.college_details(dataframe, university_name,
                                                branch_name)
    college_obj = coll.College(college_instance, crimes_obj)

    crime_per_student_without_average = handlers.all_crimes_per_student_over_years(
        college_obj, crimes_obj)  # Question 1
    crime_per_student_with_average = handlers.all_crimes_per_student_over_years(
        college_obj, crimes_obj, average=True)  # Question 2
    crimes_per_student_by_category = handlers.average_crimes_per_student_by_category(
        dataframe, 'State', crimes_obj)  # Question 3

    pltparam = plotting.pltParam()
    answers_obj = plots.Answers(crimes_obj, college_obj, pltparam,
                                crime_per_student_without_average,
                                crime_per_student_with_average,
                                crimes_per_student_by_category)

    answers_obj.visualize_answer1()
    answers_obj.pieChart(crime_per_student_with_average)
예제 #3
0
	def test_all_crimes_per_student_over_years(self):
		'''The function tests the valid responses of the crime per student function'''

		self.college_instance = handlers.college_details(self.dataframe, self.valid_university_name, self.valid_branch_name)
		self.college_obj = coll.College(self.college_instance, self.crimes_object)
		
		self.test_data1 = handlers.all_crimes_per_student_over_years(self.college_obj, self.crimes_object, True, False)
		
		self.assertEquals(len(self.test_data1['MURD']), 3)
예제 #4
0
    def test_college_details(self):
        ''' The function should return either a single row or no rows '''

        self.valid_row = handlers.college_details(self.dataframe,
                                                  self.valid_university_name,
                                                  self.valid_branch_name)
        self.invalid_row1 = handlers.college_details(
            self.dataframe, self.valid_university_name,
            self.invalid_branch_name)
        self.invalid_row2 = handlers.college_details(
            self.dataframe, self.invalid_university_name,
            self.invalid_branch_name)
        self.invalid_row3 = handlers.college_details(
            self.dataframe, self.invalid_university_name,
            self.valid_branch_name)

        self.assertEquals(self.valid_row.shape[0], 1)
        self.assertEquals(self.invalid_row1.shape[0], 0)
        self.assertEquals(self.invalid_row2.shape[0], 0)
        self.assertEquals(self.invalid_row3.shape[0], 0)
예제 #5
0
    def test_all_crimes_per_student_over_years(self):
        '''The function tests the valid responses of the crime per student function'''

        self.college_instance = handlers.college_details(
            self.dataframe, self.valid_university_name, self.valid_branch_name)
        self.college_obj = coll.College(self.college_instance,
                                        self.crimes_object)

        self.test_data1 = handlers.all_crimes_per_student_over_years(
            self.college_obj, self.crimes_object, True, False)

        self.assertEquals(len(self.test_data1['MURD']), 3)
예제 #6
0
def university_crime_explorer(dataframe, crimes_obj, university_name, branch_name, GUI_Required):
	'''Gives out the crime details related to a university + branch'''

	if GUI_Required:
		GUI.start_user_interface(dataframe)
		university_name = GUI.get_uni()
		branch_name = GUI.get_branch()
		
	print "Details about %s (%s) is being generated. Please wait..." % (university_name, branch_name)
	
	college_instance = handlers.college_details(dataframe, university_name, branch_name)
	college_obj = coll.College(college_instance, crimes_obj)

	multibar_plot, pie_chart = get_university_crime_details_and_plot(dataframe, college_obj, crimes_obj)
	return university_name, branch_name, multibar_plot, pie_chart
예제 #7
0
def university_crime_explorer(dataframe, crimes_obj, university_name,
                              branch_name, GUI_Required):
    '''Gives out the crime details related to a university + branch'''

    if GUI_Required:
        GUI.start_user_interface(dataframe)
        university_name = GUI.get_uni()
        branch_name = GUI.get_branch()

    print "Details about %s (%s) is being generated. Please wait..." % (
        university_name, branch_name)

    college_instance = handlers.college_details(dataframe, university_name,
                                                branch_name)
    college_obj = coll.College(college_instance, crimes_obj)

    multibar_plot, pie_chart = get_university_crime_details_and_plot(
        dataframe, college_obj, crimes_obj)
    return university_name, branch_name, multibar_plot, pie_chart
예제 #8
0
def university_crime_explorer(dataframe):
	'''Handles the features of first GUI'''

	GUI.start_user_interface(dataframe)
	university_name = GUI.get_uni()
	branch_name = GUI.get_branch()

	print "Details about %s (%s) is being generated. Please wait..." % (university_name, branch_name)
	
	college_instance = handlers.college_details(dataframe, university_name, branch_name)
	college_obj = coll.College(college_instance, crimes_obj)

	crime_per_student_without_average = handlers.all_crimes_per_student_over_years(college_obj, crimes_obj)	# Question 1
	crime_per_student_with_average = handlers.all_crimes_per_student_over_years(college_obj, crimes_obj, average=True)	# Question 2
	crimes_per_student_by_category = handlers.average_crimes_per_student_by_category(dataframe, 'State', crimes_obj)	# Question 3
	
	pltparam = plotting.pltParam()
	answers_obj = plots.Answers(crimes_obj, college_obj, pltparam, crime_per_student_without_average, crime_per_student_with_average, crimes_per_student_by_category)

	answers_obj.visualize_answer1()
	answers_obj.pieChart(crime_per_student_with_average)	
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import handlers
import college

if __name__ == '__main__':
	'''Handling the functionalities'''
	
	dataframe, crimes_obj = handlers.data_initialization("data/oncampuscrime101112_cleaned.csv")
	coll =college.College(pd.Series({"a":3},crimes_obj))
	university_name = "University of Alabama in Huntsville"
	branch_name = "Main_Campus"
	college_instance = handlers.college_details(dataframe, university_name, branch_name)
	college_obj = coll.College(college_instance, crimes_obj)
	crime_per_student = handlers.all_crimes_per_student_over_years("On Campus", "Crime", college_instance, crimes_obj)

	
	answers_obj = plots.Answers(crimes_obj, college_obj, pltparam, crime_per_student_without_average, crime_per_student_with_average, crimes_per_student_by_category)

	d = handlers.average_crimes_per_student_by_category(dataframe, 'State' ,crimes_obj, overall_average = True)
	
	
	answers_obj.simpleBarChart(d,"MA")