Allocation
by cjwprostar
HTML
<textarea id="t" style="width: 800px; height: 800px;"></textarea>
JavaScript
var tests = [];
tests.push({
values: [
{ billableHours: .07, costHours: .07 },
{ billableHours: .07, costHours: .07 },
{ billableHours: .07, costHours: .07 },
{ billableHours: .07, costHours: .07 }
],
expect: [
{ allocatedBillableHours: .01, allocatedCostHours: .01 },
{ allocatedBillableHours: .02, allocatedCostHours: .02 },
{ allocatedBillableHours: .02, allocatedCostHours: .02 },
{ allocatedBillableHours: .02, allocatedCostHours: .02 }
]
});
tests.push({
values: [
{ billableHours: 1, costHours: .19 },
{ billableHours: 1, costHours: .19 }
],
expect: [
{ allocatedBillableHours: .5, allocatedCostHours: .09 },
{ allocatedBillableHours: .5, allocatedCostHours: .1 }
]
});
tests.push({
values: [
{ billableHours: .06, costHours: .06 },
{ billableHours: .06, costHours: .06 },
{ billableHours: .06, costHours: .06 },
{ billableHours: .06, costHours: .06 }
],
expect: [
{ allocatedBillableHours: .01, allocatedCostHours: .01 },
{ allocatedBillableHours: .01, allocatedCostHours: .01 },
{ allocatedBillableHours: .02, allocatedCostHours: .02 },
{ allocatedBillableHours: .02, allocatedCostHours: .02 },
]
});
tests.push({
values: [
{ billableHours: 1, costHours: 1 },
{ billableHours: 1, costHours: 1 },
{ billableHours: 1, costHours: 1 }
],
expect: [
{ allocatedBillableHours: .33, allocatedCostHours: .33 },
{ allocatedBillableHours: .33, allocatedCostHours: .33 },
{ allocatedBillableHours: .34, allocatedCostHours: .34 },
]
});
tests.push({
values: [
{ billableHours: 1, costHours: .78 }
],
expect: [
{ allocatedBillableHours: 1, allocatedCostHours: .78 }
]
});
tests.push({
values: [
{ billableHours: 1, costHours: .2 },
{ billableHours: 1, costHours: .2 }
],
expect: [
{ allocatedBillableHours: .5, allocatedCostHours: .1 },
{ allocatedBillableHours: .5, allocatedCostHours: .1 }
]
});
tests.push({
values: [
{ billableHours: 2, costHours: 1.7 },
...