def extractBudgetCountsPer12Months():
    durationValues = []
    for project in Project.objects.all():
        if project.startDate == "-":
            print("project %s has no start date" % project.codeNumber)
            continue
        duration = getDurationOfProjectInMonths(project)
        if duration < 0:
            print("project %s ended before it started" % project.codeNumber)
            continue
        durationValues.append(duration)

    lowDurationValue = min(durationValues)
    highDurationValue = max(durationValues)
    bucketSize = 12
    bucketCount = ceil((highDurationValue-lowDurationValue)/bucketSize)

    countPerBucket = [0]*bucketCount
    for durationValue in durationValues:
        bucketIndex = valueToIntervalSizeBasedBucket(bucketSize, lowDurationValue, durationValue)
        countPerBucket[bucketIndex] += 1

    theTsv = open("espaHistoDurationMonths.tsv", "w+")

    dx = bucketSize
    print("high value is %f, low value is %f, interval is %f" % (highDurationValue, lowDurationValue, dx))
    for i in range(0, len(countPerBucket)):
        print("%d\t%d\t%d" % ((lowDurationValue+i*dx), dx, countPerBucket[i]), file=theTsv)

    theTsv.flush()
    theTsv.close()
Exemple #2
0
def basicSizeBasedBucketAllocationShouldWork():
    minValue = 0
    bucketSize = 12

    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 0))
    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 1))
    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 2))
    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 11))

    assertEquals(1, valueToIntervalSizeBasedBucket(bucketSize, minValue, 12))
    assertEquals(1, valueToIntervalSizeBasedBucket(bucketSize, minValue, 13))
    assertEquals(1, valueToIntervalSizeBasedBucket(bucketSize, minValue, 23))

    assertEquals(2, valueToIntervalSizeBasedBucket(bucketSize, minValue, 24))
    assertEquals(2, valueToIntervalSizeBasedBucket(bucketSize, minValue, 25))
    assertEquals(2, valueToIntervalSizeBasedBucket(bucketSize, minValue, 35))
Exemple #3
0
def basicSizeBasedBucketAllocationShouldWork():
    minValue = 0
    bucketSize = 12

    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 0))
    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 1))
    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 2))
    assertEquals(0, valueToIntervalSizeBasedBucket(bucketSize, minValue, 11))

    assertEquals(1, valueToIntervalSizeBasedBucket(bucketSize, minValue, 12))
    assertEquals(1, valueToIntervalSizeBasedBucket(bucketSize, minValue, 13))
    assertEquals(1, valueToIntervalSizeBasedBucket(bucketSize, minValue, 23))

    assertEquals(2, valueToIntervalSizeBasedBucket(bucketSize, minValue, 24))
    assertEquals(2, valueToIntervalSizeBasedBucket(bucketSize, minValue, 25))
    assertEquals(2, valueToIntervalSizeBasedBucket(bucketSize, minValue, 35))