This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import type { SecurityTier } from '@pig/core';
|
||||
import {
|
||||
capacityMeetsRequirement,
|
||||
type AvailabilityRow,
|
||||
} from '../src/services/capacity';
|
||||
|
||||
function capacity(securityTier: SecurityTier): AvailabilityRow {
|
||||
return {
|
||||
commitmentId: '10000000-0000-4000-8000-000000000001',
|
||||
accountId: '20000000-0000-4000-8000-000000000001',
|
||||
name: `${securityTier} block`,
|
||||
gpuType: 'H100_80GB',
|
||||
gpuCount: 8,
|
||||
interconnectType: 'Infiniband',
|
||||
securityTier,
|
||||
startsAt: new Date('2026-01-01T00:00:00Z'),
|
||||
endsAt: new Date('2027-01-01T00:00:00Z'),
|
||||
totalGpuHours: 10_000,
|
||||
soldGpuHours: 0,
|
||||
heldGpuHours: 0,
|
||||
availableGpuHours: 10_000,
|
||||
costPerGpuHourCents: 100,
|
||||
utilisation: 0,
|
||||
breakEvenPriceCents: 100,
|
||||
};
|
||||
}
|
||||
|
||||
test('government demand excludes both community and ordinary secure cloud', () => {
|
||||
const requirement = { gpuCount: 1, minSecurityTier: 'government' as const };
|
||||
assert.equal(capacityMeetsRequirement(capacity('community_cloud'), requirement), false);
|
||||
assert.equal(capacityMeetsRequirement(capacity('secure_cloud'), requirement), false);
|
||||
assert.equal(capacityMeetsRequirement(capacity('government'), requirement), true);
|
||||
});
|
||||
|
||||
test('higher classifications may satisfy lower requirements', () => {
|
||||
assert.equal(
|
||||
capacityMeetsRequirement(capacity('government'), {
|
||||
gpuCount: 1,
|
||||
minSecurityTier: 'secure_cloud',
|
||||
}),
|
||||
true,
|
||||
);
|
||||
assert.equal(
|
||||
capacityMeetsRequirement(capacity('secure_cloud'), {
|
||||
gpuCount: 1,
|
||||
minSecurityTier: 'community_cloud',
|
||||
}),
|
||||
true,
|
||||
);
|
||||
});
|
||||
|
||||
test('security sufficiency never overrides the export-control predicate', () => {
|
||||
const block = capacity('government');
|
||||
assert.equal(
|
||||
capacityMeetsRequirement(block, {
|
||||
gpuCount: 1,
|
||||
minSecurityTier: 'government',
|
||||
complianceDecision: { decision: 'block', supersededAt: null },
|
||||
}),
|
||||
false,
|
||||
);
|
||||
assert.equal(
|
||||
capacityMeetsRequirement(block, {
|
||||
gpuCount: 1,
|
||||
minSecurityTier: 'government',
|
||||
complianceDecision: null,
|
||||
}),
|
||||
false,
|
||||
);
|
||||
assert.equal(
|
||||
capacityMeetsRequirement(block, {
|
||||
gpuCount: 1,
|
||||
minSecurityTier: 'government',
|
||||
complianceDecision: { decision: 'allow', supersededAt: new Date() },
|
||||
}),
|
||||
false,
|
||||
);
|
||||
assert.equal(
|
||||
capacityMeetsRequirement(block, {
|
||||
gpuCount: 1,
|
||||
minSecurityTier: 'government',
|
||||
complianceDecision: { decision: 'allow', supersededAt: null },
|
||||
}),
|
||||
true,
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user