def test1(): """ tests periodRanking.quarter_data() and periodRanking.annual_data(). """ print( 'testing state data processing...') fname = "HPI_PO_state.txt" data = indexTools.read_state_house_price_data( "data/" + fname ) answer = dict() answer["HPI_PO_state.txt 1993 1"] = [('UT', 117.69), ('OR', 116.94)] answer["HPI_PO_state.txt 1993 3"] = [('UT', 128.49), ('CO', 125.16)] answer["HPI_PO_state.txt 1993 None"] = [('UT', 125.77499999999999), ('CO', 122.3775)] answer["HPI_PO_state.txt 1997 1"] = [('OR', 162.61), ('MT', 162.09)] answer["HPI_PO_state.txt 1997 3"] = [('OR', 166.34), ('CO', 162.8)] answer["HPI_PO_state.txt 1997 None"] = [('OR', 164.875), ('MT', 162.20499999999998)] answer["HPI_PO_state.txt 2010 1"] = [('MT', 298.92), ('WY', 281.91)] answer["HPI_PO_state.txt 2010 3"] = [('MT', 293.55), ('WY', 281.33)] answer["HPI_PO_state.txt 2010 None"] = [('MT', 292.9875), ('WY', 281.6325)] for year in [ 1993, 1997, 2010]: for qtr in [ 1, 3, None]: if qtr != None: results = periodRanking.quarter_data( data, year, qtr ) else: results = periodRanking.annual_data( indexTools.annualize( data), year ) key = fname + " " + str(year) + " " + str(qtr) #print( key ) #if key in answer: print( fname, year, qtr, ":", ( results[1:3] == answer[ key] )) #else: # print( fname, year, qtr, ":", "incorrect", results[1:3] ) return
def test1(): """ tests state-keyed data """ print( 'testing state data processing...') fname = "HPI_PO_state.txt" data = indexTools.read_state_house_price_data( "data/" + fname ) annual = indexTools.annualize( data) answer = dict() answer[ "HPI_PO_state.txt 1994 2002" ] = \ [('MA', 8.927726257507196), ('NJ', 6.07279996720127), ('HI', 1.1529363923406422)] answer[ "HPI_PO_state.txt 1995 1996" ] = \ [('MI', 8.165561829936996), ('SD', 4.714654541250818), ('HI', -5.63621724111062)] answer[ "HPI_PO_state.txt 2006 2008" ] = \ [('WY', 4.268849486063586), ('WV', 1.450495211395464), ('CA', -17.73558710889268)] for year in [ (1994,2002), (1995,1996), (2006,2008) ]: print( '= ' * 27 ) # compute growth rates only for annual averages of HPI values. trends = trending.calculate_trends( annual, year[0], year[1] ) results = [ trends[0], trends[9], trends[-1] ] # sampling key = fname + " " + str(year[0]) + " " + str(year[1]) print( fname, str(year[0]), str(year[1]), ":", ( results == answer[ key ] )) return
def main(): """ docstring for main function here :return: """ # Prompt user to input filename, region variable, and year variable # filenameVariable = input("Filename: ") # regionVariable = input("State abbreviation or ZIP Code: ") # yearVariable = input("Year: ") # Check to see if the ZIP exists in the filename # if "ZIP" in filenameVariable: # data = indexTools.read_zip_house_price_data(filenameVariable) # print("ZIP Data") # print() dataFilesPeriodRanking = [] filename = '' year = '' if len(sys.argv) != 3: filename = input("Enter region-based house price index filename: ") year = int(input("Enter year of interest for house price: ")) else: filename = sys.argv[1] year = int(sys.argv[2]) dataFiles = indexTools.read_state_house_price_data(filename) dataFilesAnnualized = indexTools.annualize(dataFiles) pythonList = [] for key in dataFilesAnnualized: entry = dataFilesAnnualized[key] for entryValue in entry: if entryValue.year == year: pythonList.append((key, entryValue)) pythonList = sorted(pythonList, key=lambda x:x[1].index,reverse=True) print(year, " Annual Ranking") print("The Top 10:") for i,listValue in enumerate(pythonList[:10]): print(i+1, " : (", listValue[0], ", ", listValue[1].index, ")") pythonList.reverse() lowest = pythonList[:10] lowest.reverse() print("The Bottom 10:") for i,reverseValue in enumerate(lowest): print(i+1, " : (", reverseValue[0], ", ", reverseValue[1].index, ")")
def test1(): """ tests volatility calculations for state data sets. """ print('testing state data processing...') fname = "HPI_PO_state.txt" data = indexTools.read_state_house_price_data("data/" + fname) # compute growth rates only for annual averages of HPI values. annual = indexTools.annualize(data) answer = \ [('DC', 130.95338408932818), ('MT', 77.11321243277986), ('OR', 75.93526891291103), ('MS', 30.164122833810534), ('IN', 22.794615225619044), ('OH', 22.511935480767455)] measures = volatility.measure_volatility(annual) results = [measures[i] for i in [0, 1, 2, -3, -2, -1]] if results == answer: print(fname, ":", True) else: print(fname, ":", "incorrect", str(results)) return
def test1(): """ The function reads a dataset file, annualizes the dataset values, and uses a canned sequence of names to plot to get plot data and check it against expected values. """ # test with subset of data files for fname in [ "HPI_PO_state.txt", "HPI_AT_ZIP5.txt"]: print( "=" * 72 ) print( "\nReading", fname, "..." ) if "ZIP" in fname: # read a house price index file with Zip code key. # note: Zip data is already annualized annual = indexTools.read_zip_house_price_data( 'data/' + fname ) # this keylist has data with some gaps keylist = [ "04083", "14625", "48210", "12202" ] else: data = indexTools.read_state_house_price_data( 'data/' + fname ) # state data must be annualized for the timeline plots. annual = indexTools.annualize( data ) keylist = [ "NY", "IL", "MA", "VT", "MS" ] # filter the data to get a subrange annual = timelinePlot.filter_years( annual, 1988, 2008 ) # call the functions for plotting timelinePlot.plot_HPI( annual, keylist) timelinePlot.plot_whiskers( annual, keylist) return