Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Test inverting CensusTreeNode with a by alloaction stack breakdown.
*/
function run_test() {
const BREAKDOWN = {
by: "allocationStack",
then: { by: "count", count: true, bytes: true },
noStack: { by: "count", count: true, bytes: true },
};
function a(n) {
return b(n);
}
function b(n) {
return c(n);
}
function c(n) {
return saveStack(n);
}
function d(n) {
return b(n);
}
function e(n) {
return c(n);
}
const abc_Stack = a(3);
const bc_Stack = b(2);
const c_Stack = c(1);
const dbc_Stack = d(3);
const ec_Stack = e(2);
const REPORT = new Map([
[abc_Stack, { bytes: 10, count: 1 }],
[bc_Stack, { bytes: 10, count: 1 }],
[c_Stack, { bytes: 10, count: 1 }],
[dbc_Stack, { bytes: 10, count: 1 }],
[ec_Stack, { bytes: 10, count: 1 }],
["noStack", { bytes: 50, count: 5 }],
]);
const EXPECTED = {
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: [
{
name: "noStack",
bytes: 50,
totalBytes: 50,
count: 5,
totalCount: 5,
children: [
{
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: undefined,
id: 16,
parent: 15,
reportLeafIndex: undefined,
},
],
id: 15,
parent: 14,
reportLeafIndex: 6,
},
{
name: abc_Stack,
bytes: 50,
totalBytes: 10,
count: 5,
totalCount: 1,
children: [
{
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: undefined,
id: 18,
parent: 17,
reportLeafIndex: undefined,
},
{
name: abc_Stack.parent,
bytes: 0,
totalBytes: 10,
count: 0,
totalCount: 1,
children: [
{
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: undefined,
id: 22,
parent: 19,
reportLeafIndex: undefined,
},
{
name: abc_Stack.parent.parent,
bytes: 0,
totalBytes: 10,
count: 0,
totalCount: 1,
children: [
{
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: undefined,
id: 21,
parent: 20,
reportLeafIndex: undefined,
},
],
id: 20,
parent: 19,
reportLeafIndex: undefined,
},
{
name: dbc_Stack.parent.parent,
bytes: 0,
totalBytes: 10,
count: 0,
totalCount: 1,
children: [
{
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: undefined,
id: 24,
parent: 23,
reportLeafIndex: undefined,
},
],
id: 23,
parent: 19,
reportLeafIndex: undefined,
},
],
id: 19,
parent: 17,
reportLeafIndex: undefined,
},
{
name: ec_Stack.parent,
bytes: 0,
totalBytes: 10,
count: 0,
totalCount: 1,
children: [
{
name: null,
bytes: 0,
totalBytes: 100,
count: 0,
totalCount: 10,
children: undefined,
id: 26,
parent: 25,
reportLeafIndex: undefined,
},
],
id: 25,
parent: 17,
reportLeafIndex: undefined,
},
],
id: 17,
parent: 14,
reportLeafIndex: new Set([1, 2, 3, 4, 5]),
},
],
id: 14,
parent: undefined,
reportLeafIndex: undefined,
};
compareCensusViewData(BREAKDOWN, REPORT, EXPECTED, { invert: true });
}