示例#1
0
def issueDurationDetector():
    zeroCount=0
    values=gt.launchDump()['duration']
    print (values)
    print ("Method 1")
    values.sort()
    for i in values:
        if i <=0.1:
            zeroCount+=1
        else:
            break
    hv=base.high(values)['value']
    hp=base.high(values)['pos']
    mv=base.median(values)['value']
    mp=base.median(values)['pos']
    lv=base.low(values)['value']
    lp=base.low(values)['pos']
    print ('low val',lv,'median val',mv,'high val',hv)
    print ('low pos',lp,'median pos',mp,'high pos',hp)
    k= float((hv-mv)*(mp-lp)/((hp-mp)*(mv-lv)))
    if k>5 or 20*zeroCount>len(values):
        print ('BadSmell found in issue Duration')
    elif k==5:
        print ('Probably have smells in issue length')
    else:
        print ('Issue Duration Detector Passed')
def earlyIssuesByWeekDetector():
    issues_nums = []
    items = gt.launchDump()
    issues_nums = gt.divideByTime(items['create_at'])

    avg_val = np.mean(issues_nums[0:4])
    std_dev = np.std(issues_nums[0:4])
    val = std_dev
    data = issues_nums[0:4]
    print(data)
    sum = 0
    for i in range(len(data)):
        res = cmp(
            data[i], avg_val + val
        )  # when isssues number is greater than avg + 2 * stand deviation or less than avg - 2 * stand deviation
        res2 = cmp(data[i], avg_val - val)
        if (i > 0):
            sum = issues_nums[i - 1] + issues_nums[i]

        if sum < avg_val and i > 0:
            print('Badsmells: This week has too less issues.')
            sum = 0
        elif res > 0:
            print('Badsmells: This week has too many issues.')
        elif res2 < 0:
            print('Badsmells: This week has too less issues.')
        else:
            print('Issues numbers are normal')
示例#3
0
def issueDurationDetector2():
    print ("Method 2")
    zeroCount=0
    data=gt.launchDump()['duration']
    data.sort()
    for i in data:
        if i <=0.1:
            zeroCount+=1
        else:
            break
    data=data[1:len(data)-1]
    stddeviation= std(data)
    avg= mean(data)
    high=avg+stddeviation
    if avg-stddeviation>0:
        low=avg-stddeviation
    else:
        low=0
    lowCount=0
    highCount=0
    for i in data:
        if i < low:
            lowCount+=1
        if i>high:
            highCount+=1
    print ("avg",avg,"std",stddeviation)
    print ("strange small count=",lowCount,"strange large count=",highCount,"none issue count",zeroCount)
    if 20*(lowCount+highCount) > len(data) or 20*zeroCount>len(data):
        print ("BadSmell found in issue Duration")
    else:
        print ("Issue Duration Detector Passed")
def earlyIssuesByWeekDetector():
    issues_nums=[]
    items = gt.launchDump()
    issues_nums = gt.divideByTime(items['create_at'])

    avg_val = np.mean(issues_nums[0:4])
    std_dev = np.std(issues_nums[0:4])
    val = std_dev
    data = issues_nums[0:4]
    print(data)
    sum = 0
    for i in range(len(data)):
        res = cmp(data[i], avg_val + val)    # when isssues number is greater than avg + 2 * stand deviation or less than avg - 2 * stand deviation
        res2 = cmp(data[i], avg_val - val)
        if (i > 0):
            sum = issues_nums[i-1] + issues_nums[i]

        if sum < avg_val and i > 0:
            print ('Badsmells: This week has too less issues.')
            sum = 0
        elif res > 0:
            print ('Badsmells: This week has too many issues.')
        elif res2 < 0:
            print ('Badsmells: This week has too less issues.')
        else:
            print ('Issues numbers are normal')
示例#5
0
def labelUseDetector():
    data=gt.launchDump()['labels'].values()
    # print (data)
    data.sort()
    data=data[0:len(data)-1]
    stddeviation= std(data)
    avg= mean(data)
    high=avg+stddeviation
    if avg-stddeviation>0:
        low=avg-stddeviation
    else:
        low=0
    lowCount=0
    highCount=0
    print ("avg",avg)
    print ("std",stddeviation)
    for i in data:
        if i < low:
            lowCount+=1
        if i>high:
            highCount+=1
    print ("number of strange low data",lowCount)
    print ("number of strange high data",highCount)
    if 10*(lowCount+highCount)/len(data) > 1:
        print ("BadSmell found in Label Use")
    else:
        print ("Label Use Detector Passed")
示例#6
0
def issueDurationDetector():
    zeroCount = 0
    values = gt.launchDump()['duration']
    print(values)
    print("Method 1")
    values.sort()
    for i in values:
        if i <= 0.1:
            zeroCount += 1
        else:
            break
    hv = base.high(values)['value']
    hp = base.high(values)['pos']
    mv = base.median(values)['value']
    mp = base.median(values)['pos']
    lv = base.low(values)['value']
    lp = base.low(values)['pos']
    print('low val', lv, 'median val', mv, 'high val', hv)
    print('low pos', lp, 'median pos', mp, 'high pos', hp)
    k = float((hv - mv) * (mp - lp) / ((hp - mp) * (mv - lv)))
    if k > 5 or 20 * zeroCount > len(values):
        print('BadSmell found in issue Duration')
    elif k == 5:
        print('Probably have smells in issue length')
    else:
        print('Issue Duration Detector Passed')
示例#7
0
def issueDurationDetector2():
    print("Method 2")
    zeroCount = 0
    data = gt.launchDump()['duration']
    data.sort()
    for i in data:
        if i <= 0.1:
            zeroCount += 1
        else:
            break
    data = data[1:len(data) - 1]
    stddeviation = std(data)
    avg = mean(data)
    high = avg + stddeviation
    if avg - stddeviation > 0:
        low = avg - stddeviation
    else:
        low = 0
    lowCount = 0
    highCount = 0
    for i in data:
        if i < low:
            lowCount += 1
        if i > high:
            highCount += 1
    print("avg", avg, "std", stddeviation)
    print("strange small count=", lowCount, "strange large count=", highCount,
          "none issue count", zeroCount)
    if 20 * (lowCount + highCount) > len(data) or 20 * zeroCount > len(data):
        print("BadSmell found in issue Duration")
    else:
        print("Issue Duration Detector Passed")
示例#8
0
def labelUseDetector():
    data = gt.launchDump()['labels'].values()
    # print (data)
    data.sort()
    data = data[0:len(data) - 1]
    stddeviation = std(data)
    avg = mean(data)
    high = avg + stddeviation
    if avg - stddeviation > 0:
        low = avg - stddeviation
    else:
        low = 0
    lowCount = 0
    highCount = 0
    print("avg", avg)
    print("std", stddeviation)
    for i in data:
        if i < low:
            lowCount += 1
        if i > high:
            highCount += 1
    print("number of strange low data", lowCount)
    print("number of strange high data", highCount)
    if 10 * (lowCount + highCount) / len(data) > 1:
        print("BadSmell found in Label Use")
    else:
        print("Label Use Detector Passed")
示例#9
0
def  process_issues(features):
    issues = gitable.launchDump()
    weekly_issues = issues['week']
    del issues['week']

    author_issues = dict()
    events_issues =dict()
    comments_issues = dict()
    for issue, events in issues.iteritems():
        #print("ISSUE " + str(issue))


        dict_add(author_issues, events[0].user)

        dict_add(comments_issues, events[0].comments)

        dict_add(events_issues, len(events[1:]))


    draw_bar(author_issues.values(), "issues number posted by person","issues", range(len(author_issues.keys())),"person",0.35)

    author_filter = filter.filter(author_issues)
    large_author = author_filter.large()
    features['issues_person'] = author_filter
    if(len(large_author) >0 ):
        features['large issues post by single user'] = large_author

    small_author = author_filter.small(delta=2)
    if(len(small_author) >0 ):
        features['small issues post by single user'] = small_author

    draw_bar(comments_issues.values(),"issues number with same comments number","issues",comments_issues.keys(),"comments number",0.35)

    events_filter= filter.filter(events_issues)
    features['events_issues'] = events_filter
    if len(events_filter.large())>0:
        features['large issues with same events'] = events_filter.large()

    comments_filter = filter.filter(comments_issues)
    features['comments_issues'] = comments_filter
    large_comments = comments_filter.large()
    if(len(large_comments)>0):
        features['large issues with same comments'] = large_comments
    draw_bar(events_issues.values(),"issues number with same events number", "issues",events_issues.keys(),"events number",0.35)
    single_user = filter.filter(author_issues)
    single_user.large(5)
def earlyDetector():
    issues_nums=[]
    items = gt.launchDump()
    issues_nums = gt.divideByTime(items['create_at'])

    avg_val = np.mean(issues_nums[0:3])
    std_dev = np.std(issues_nums[0:3])
    val = 1.2*std_dev
    for x in issues_nums[0:3]:
        res = cmp(x, avg_val + val)    # when isssues number is greater than avg + 2 * stand deviation or less than avg - 2 * stand deviation
        res2 = cmp(x, avg_val - val)
        if res > 0:
            print ('Badsmells: This week has too many issues.')
        elif res2 < 0:
            print ('Badsmells: This week has too less issues.')
        else:
            print ('Issues numbers are normal')
示例#11
0
def labelUseDetector():
    data=gt.launchDump()['labels'].values()
    print (data)
    data.sort()
    data=data[1:len(data)-1]
    stddeviation= std(data)
    avg= mean(data)
    high=avg+stddeviation
    if avg-stddeviation>0:
        low=avg-stddeviation
    else:
        low=0
    lowCount=0
    highCount=0
    for i in data:
        if i < low:
            lowCount+=1
        if i>high:
            highCount+=1
    if 8*lowCount/len(data) > 1 or 8*highCount/len(data)>1:
        print ("BadSmell found in Label Use")
    else:
        print ("Label Use Detector Passed")
def issueDurationDetector():
    values=gt.launchDump()['duration']
#     values.sort()
    print (values)