from gumby.spectraperf.performanceprofile import MatrixHelper, ProfileHelper, ActivityMatrix, SessionHelper, Type


if __name__ == '__main__':

    if len(sys.argv) < 5:
        print "Usage: python calculate_similarity.py configFile csvPath  revision testcase"
        print "Note: csvPath is path to csv files, no slash at the end (TODO)"
        sys.exit(0)

    config = loadConfig(sys.argv[1])
    csvPath = sys.argv[2]
    rev = sys.argv[3]
    testcase = sys.argv[4]

    h = MatrixHelper(config)
    i = 0

    print "revision: %s" % rev
    prevRevision = h.getPreviousRevision(rev)
    print "previous revision: %s" % prevRevision
    print "__________________"

    # load profile for revision and testcase
    profileHelper = ProfileHelper(config)
    p = profileHelper.loadFromDatabase(prevRevision, testcase)

    if p != -1:
        output = ""

        matrix = ActivityMatrix(p.getDatabaseId(), 5, Type.BYTESWRITTEN, rev, testcase)
def getCallsPerStacktrace(rev):
    m = MatrixHelper(config)
    calls = m.getCallsPerStacktrace(rev)
    return calls
def getMatrix(revision):
    m = MatrixHelper(config)
    matrix = m.loadFromDatabase(revision, MetricType.COSINESIM)
    return matrix
def getTotalBytesWrittenPerRevision():
    m = MatrixHelper(config)
    tb = m.getTotalBytesWrittenPerRevision()
    return tb
def getAvgMetricPerRevision():
    m = MatrixHelper(config)
    sim = m.getAvgMetricPerRevision(MetricType.COSINESIM)
    return sim
def getSimilarityPerStacktrace():
    m = MatrixHelper(config)
    sim = m.getMetricPerStacktrace(MetricType.COSINESIM)
    return sim