def test_get_eplusversion():
    """py.test for get_eplusversion"""
    data = ("./eplussql_test/eplussql.sql", "6.0.0.023")  # fname, version
    fname, version = data
    cursor = eplussql.getcursor(fname)
    result = eplussql.get_eplusversion(cursor)
    assert result == version
def test_get_variableunit():
    """py.test for get_variablename"""
    data = (("./eplussql_test/eplussql.sql", 6, "C"),)  # fname, ReportVariableDataDictionaryIndex, unit
    for fname, ReportVariableDataDictionaryIndex, unit in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.get_variableunit(cursor, ReportVariableDataDictionaryIndex)
        assert result == unit
def test_get_keyvalue():
    """py.test for get_keyvalue"""
    data = (("./eplussql_test/eplussql.sql", 6, "Environment"),)  # fname, ReportVariableDataDictionaryIndex, key
    for fname, ReportVariableDataDictionaryIndex, key in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.get_keyvalue(cursor, ReportVariableDataDictionaryIndex)
        assert result == key
def test_get_variables1():
    """py.test for get_variables1"""

    def _double(n):
        return n * 2

    data = (
        (
            "./eplussql_test/eplussql.sql",
            6,
            None,
            [11.1, 10.4125, 9.625],
        ),  # fname, ReportVariableDataDictionaryIndex, func, threevars
        (
            "./eplussql_test/eplussql.sql",
            6,
            _double,
            [22.2, 20.8250, 19.250],
        ),  # fname, ReportVariableDataDictionaryIndex, func, threevars
    )
    for fname, ReportVariableDataDictionaryIndex, func, threevars in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.get_variables1(cursor, ReportVariableDataDictionaryIndex, func)
        threeresult = result[-6:-3]
        assert threeresult == threevars
def test_get_variablename():
    """py.test for get_variablename"""
    data = (("./eplussql_test/eplussql.sql", 6, "Outdoor Dry Bulb"),)  # fname, ReportVariableDataDictionaryIndex, name
    for fname, ReportVariableDataDictionaryIndex, name in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.get_variablename(cursor, ReportVariableDataDictionaryIndex)
        assert result == name
def main(argv=None):
    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "ho:v", ["help", "output="])
        except getopt.error, msg:
            raise Usage(msg)

        # option processing
        for option, value in opts:
            if option == "-v":
                verbose = True
            if option in ("-h", "--help"):
                raise Usage(help_message)
            if option in ("-o", "--output"):
                output = value
        if len(args) == 6:
            sqlname, etcsv, func, zonetempId, windinc, comforttype = args
        if len(args) == 5:
            sqlname, etcsv, func, zonetempId, windinc = args
            comforttype = 80
        if len(args) == 4:
            sqlname, etcsv, func, zonetempId = args
            windinc, comforttype = 2, 80
        windinc, comforttype = float(windinc), float(comforttype)
        cursor = eplussql.getcursor(sqlname)
        etrows = mycsv.readcsv(etcsv)
        etrows.pop(0)
        etrows = [[float(cell) for cell in row] for row in etrows]
        if func == "hours":
            printhours(cursor, etrows, func, zonetempId, windinc, comforttype)
        if func == "alldata":
            printalldata(cursor, etrows, func, zonetempId, windinc, comforttype)
def main(argv=None):
    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "ho:v", ["help", "output="])
        except getopt.error, msg:
            raise Usage(msg)
    
        # option processing
        for option, value in opts:
            if option == "-v":
                verbose = True
            if option in ("-h", "--help"):
                raise Usage(help_message)
            if option in ("-o", "--output"):
                output = value
        if len(args) == 6:
            fname, func, dbtId, zonetempId, windinc, comforttype = args        
        if len(args) == 5:
            fname, func, dbtId, zonetempId, windinc = args  
            comforttype = 80      
        if len(args) == 4:
            fname, func, dbtId, zonetempId = args  
            windinc, comforttype = 2, 80  
        windinc, comforttype = float(windinc), float(comforttype)
        cursor = eplussql.getcursor(fname) 
        if func == 'hours':
            printhours(cursor, dbtId, zonetempId, windinc, comforttype)
        if func == 'alldata':
            printalldata(cursor, dbtId, zonetempId, windinc, comforttype)
def test_get_wfilestart():
    """py.test for get_wfilestart"""
    data = (("./eplussql_test/eplussql.sql", 2 * 24),)  # fname, start
    for fname, start in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.get_wfilestart(cursor)
        assert result == start
def getabovedays(fname, varindex, aboveval, year=2001, convertc2f=False):
    """return variable name, max and min of the variable"""
    cursor = eplussql.getcursor(fname)
    # startpoint = eplussql.get_wfilestart(cursor)
    varunit = eplussql.get_variableunit(cursor, varindex) # var units
    varname = eplussql.get_variablename(cursor, varindex) # varname
    keyvalue = eplussql.get_keyvalue(cursor, varindex) # get keyvalue
    if convertc2f and varunit == u'C': # conversion
        func = eplussql.c2f
        varunit = u'F'
    else:
        func = None
    matrix = eplussql.get_variables(cursor, varindex, func=func) # gets vars
    yhours = date_functions.yeardateshours(year) # yeardates
    matrix = zip(yhours, matrix)
    # days = split2days(matrix, hrs=24) # splits it into 24 hr blocks
    # filtering of days take place below
    # daysabove = filterdaysabove(days, aboveval)
    daysabove = date_functions.filterdays(matrix, -1, aboveval,
                                        date_functions.gt, hrs=24)
    return varname, keyvalue, varunit, daysabove
    
# fname = './eplussql_test/hup01_23_pytest.sql'
# varname, keyvalue, varunit, daysabove = getabovedays(fname, 386, 88, convertc2f=True)
# for day in daysabove:
#     for d, val in day:
#         print '%s, %s' % (d, val)
def printvarindex(fname):
    """print the var index"""
    cursor = eplussql.getcursor(fname)
    mtx1 = eplussql.get_varindex(cursor)
    mtx2 = [[str(item) for item in row] for row in mtx1]
    mtx3 = [','.join(row) for row in mtx2]
    for row in mtx3:
        print row
def test_checkhourly():
    """py.test for checkhourly"""
    data = (
        ("./eplussql_test/eplussql.sql", True),  # fname, ishourly
        ("./eplussql_test/eplussql1.sql", False),  # fname, ishourly
    )
    for fname, ishourly in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.checkhourly(cursor)
        assert result == ishourly
def test_getcursor():
    """py.test for getcursor"""
    data = (
        ("./eplussql_test/eplussql.sql", u"10.0.0.023", "exception"),  # fname, eplusversion, versionresponse
        ("./eplussql_test/eplussql.sql", u"10.0.0.023", "print"),  # fname, eplusversion, versionresponse
        ("./eplussql_test/eplussql.sql", u"10.0.0.023", None),  # fname, eplusversion, versionresponse
    )
    error = eplussql.VersionMismatchError
    testing = True
    for fname, eplusversion, versionresponse in data:
        if versionresponse == "exception":
            with pytest.raises(error):
                eplussql.getcursor(fname, versionresponse=versionresponse, testing=testing)
        if versionresponse == "print":
            result = eplussql.getcursor(fname, versionresponse=versionresponse, testing=testing)
            assert result == "printed"
        if versionresponse == None:
            result = eplussql.getcursor(fname, versionresponse=versionresponse, testing=testing)
            assert result == None
def printvars(fname, ReportVariableDataDictionaryIndex, func=None, year=2001):
    """print the variables in csv format"""
    cursor = eplussql.getcursor(fname)
    varname = eplussql.get_variablename(cursor,
                        ReportVariableDataDictionaryIndex)
    keyvalue = eplussql.get_keyvalue(cursor,
                        ReportVariableDataDictionaryIndex)
    matrix = eplussql.get_variables(cursor, 
            ReportVariableDataDictionaryIndex, func=func)
    yhours = date_functions.yeardateshours(year)  
    outmat = [["datetime", varname]] + [["", keyvalue]] + zip(yhours, matrix)      
    for row in outmat:
        print "%s, %s" % tuple(row)
def test_get_manyvariables():
    """py.test for get_manyvariables"""
    data = (
        ("./eplussql_test/eplussql.sql", [6, 7], [None, None]),  # fname, ReportVariableDataDictionaryIndices, funcs
    )
    for fname, ReportVariableDataDictionaryIndices, funcs in data:
        cursor = eplussql.getcursor(fname)
        thevars = []
        for ind, func in zip(ReportVariableDataDictionaryIndices, funcs):
            thevars.append(eplussql.get_variables(cursor, ind, func))
        matrix = mycsv.transpose2d(thevars)
        result = eplussql.get_manyvariables(cursor, ReportVariableDataDictionaryIndices, funcs)
        assert result == matrix
Beispiel #15
0
def getmaxmin(fname, varindex, convertc2f=False):
    """return variable name, max and min of the variable"""
    cursor = eplussql.getcursor(fname)
    # startpoint = eplussql.get_wfilestart(cursor)
    varunit = eplussql.get_variableunit(cursor, varindex)
    if convertc2f and varunit == u"C":
        func = eplussql.c2f
        varunit = u"F"
    else:
        func = None
    matrix = eplussql.get_variables(cursor, varindex, func=func)
    varname = eplussql.get_variablename(cursor, varindex)
    keyvalue = eplussql.get_keyvalue(cursor, varindex)
    return varname, keyvalue, varunit, min(matrix), max(matrix)
def getabove(fname, varindex, aboveval, convertc2f=False):
    """return variable name, max and min of the variable"""# TODO incorrect __doc__
    cursor = eplussql.getcursor(fname)
    # startpoint = eplussql.get_wfilestart(cursor)
    varunit = eplussql.get_variableunit(cursor, varindex)
    if convertc2f and varunit == u'C':
        func = eplussql.c2f
        varunit = u'F'
    else:
        func = None
    matrix = eplussql.get_variables(cursor, varindex, func=func)
    varname = eplussql.get_variablename(cursor, varindex)
    keyvalue = eplussql.get_keyvalue(cursor, varindex)
    abovenums = [val for val in matrix if val > aboveval]
    return varname, keyvalue, varunit, len(abovenums)
def test_get_varindex():
    """py.test for get_varindex"""
    data = (
        (
            "./eplussql_test/eplussql.sql",
            [
                ["Index", "KeyValue", "VariableName", "VariableUnits"],
                [6, u"Environment", u"Outdoor Dry Bulb", u"C"],
                [7, u"Environment", u"Outdoor Wet Bulb", u"C"],
                [8, u"Environment", u"Outdoor Relative Humidity", u"%"],
            ],
        ),  # fname, indexmatrix
    )
    for fname, indexmatrix in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.get_varindex(cursor)
        assert result == indexmatrix
def vars2csv(fname, variables, convertc2f=False):
    """print the vars in csvformat"""
    matrix = []
    cursor = eplussql.getcursor(fname)
    for varindex in variables:
        varunit = eplussql.get_variableunit(cursor, varindex)
        if varunit == u'C' and convertc2f:
            func = eplussql.c2f
            varunit = u'F'
        else:
            func = None
        varlist = eplussql.get_variables(cursor, varindex, func=func)
        varname = eplussql.get_variablename(cursor, varindex)
        varkeyvalue = eplussql.get_keyvalue(cursor, varindex)
        headerandlist = [varname] + [varkeyvalue] + [varunit] + varlist
        matrix.append(headerandlist)

    matrix = mycsv.transpose2d(matrix)
    for row in matrix:
        row = [str(item) for item in row]
        print ','.join(row)
def test_outofbounds():
    """py.test for outofbounds"""
    data = (
        (
            "./eplussql_test/eplussql.sql",
            6,
            14,
            True,
            2,
        ),  # fname, ReportVariableDataDictionaryIndex, bounds, above, count
        (
            "./eplussql_test/eplussql.sql",
            6,
            5,
            False,
            2,
        ),  # fname, ReportVariableDataDictionaryIndex, bounds, above, count
    )
    for fname, ReportVariableDataDictionaryIndex, bounds, above, count in data:
        cursor = eplussql.getcursor(fname)
        result = eplussql.outofbounds(cursor, ReportVariableDataDictionaryIndex, bounds, above)
        assert result == count
Beispiel #20
0
import eplussql
fname = './eplussql_test/eplussql1.sql'
fname = '/Volumes/Server/Staff/Santosh/transfer/eplussql_stuff/eplussql1.sql'
cursor = eplussql.getcursor(fname)

ReportVariableDataDictionaryIndex = 8

rows = eplussql.get_variables1(cursor, ReportVariableDataDictionaryIndex)

print rows[:150]
def printvarindex(fname):
    """print varindex in csv format"""
    cursor = eplussql.getcursor(fname)
    mtx = eplussql.get_varindex(cursor)
    for row in mtx:
        print "%s,%s,%s,%s" % tuple(row)