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

    numberOfBuckets = 100
    lowDurationValue = min(durationValues)
    highDurationValue = max(durationValues)

    countPerBucket = [0]*numberOfBuckets
    for durationValue in durationValues:
        bucketIndex = valueToBucketIndex(numberOfBuckets, lowDurationValue, highDurationValue+1, durationValue)
        countPerBucket[bucketIndex] += 1

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

    dx = (highDurationValue-lowDurationValue)/numberOfBuckets
    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()
예제 #2
0
def basicBucketAllocationShouldWork():
    minValue = 10
    maxValue = 120
    numberOfBuckets = 10

    # There are 110 values and 10 buckets. Every 11 values we should change buckets. Note the fencepost error
    # that 120 is not included in the last interval since intervals are open on their high value
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       10))
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       11))
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       12))
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       20))

    assertEquals(1, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       21))
    assertEquals(1, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       31))

    assertEquals(2, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       32))
    assertEquals(2, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       42))

    assertEquals(3, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       43))
    assertEquals(3, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       53))

    assertEquals(4, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       54))
    assertEquals(4, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       64))

    assertEquals(5, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       65))
    assertEquals(5, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       75))

    assertEquals(6, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       76))
    assertEquals(6, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       86))

    assertEquals(7, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       87))
    assertEquals(7, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       97))

    assertEquals(8, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       98))
    assertEquals(8, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       108))

    assertEquals(9, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       109))
    assertEquals(9, valueToBucketIndex(numberOfBuckets, minValue, maxValue,
                                       119))

    assertEquals(10,
                 valueToBucketIndex(numberOfBuckets, minValue, maxValue, 120))
예제 #3
0
def basicBucketAllocationShouldWork():
    minValue = 10
    maxValue = 120
    numberOfBuckets = 10

    # There are 110 values and 10 buckets. Every 11 values we should change buckets. Note the fencepost error
    # that 120 is not included in the last interval since intervals are open on their high value
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 10))
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 11))
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 12))
    assertEquals(0, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 20))

    assertEquals(1, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 21))
    assertEquals(1, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 31))

    assertEquals(2, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 32))
    assertEquals(2, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 42))

    assertEquals(3, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 43))
    assertEquals(3, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 53))


    assertEquals(4, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 54))
    assertEquals(4, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 64))


    assertEquals(5, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 65))
    assertEquals(5, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 75))

    assertEquals(6, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 76))
    assertEquals(6, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 86))

    assertEquals(7, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 87))
    assertEquals(7, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 97))

    assertEquals(8, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 98))
    assertEquals(8, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 108))

    assertEquals(9, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 109))
    assertEquals(9, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 119))

    assertEquals(10, valueToBucketIndex(numberOfBuckets, minValue, maxValue, 120))