Beispiel #1
0
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
Beispiel #2
0
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, ")")
Beispiel #4
0
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
Beispiel #5
0
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