blob: 502a9963242df15af2b3de4d6e658f59bfdceb89 [file] [log] [blame]
import {Commit, Digest, SearchResult, TestName} from '../rpc_types';
export const fakeNow = Date.parse('2020-03-22T00:00:00.000Z');
const allTheSame: number[] = Array(200).fill(0);
const mod2Data: number[] = Array(200).fill(1).map((_, index) => index % 2);
const mod3Data: number[] = Array(200).fill(1).map((_, index) => index % 3);
export const makeTypicalSearchResult = (testName: TestName, digest: Digest, closestDigest: Digest): SearchResult => ({
test: testName,
digest: digest,
status: 'positive',
triage_history: [
{
user: 'user1@example.com',
ts: '2020-02-25T16:08:18.776Z',
},
{
user: 'user2@example.com',
ts: '2020-02-25T16:05:13.000Z',
},
],
paramset: {
ext: [
'png',
],
name: [
testName,
],
source_type: [
'infra',
],
os: [
'Mac', 'Linux',
],
},
traces: {
traces: [
{
data: mod2Data,
label: `,name=${testName},os=Linux,source_type=infra,`,
params: {
ext: 'png',
name: testName,
os: 'Linux',
source_type: 'infra',
},
comment_indices: null, // TODO(kjlubick) skbug.com/6630
},
{
data: mod3Data,
label: `,name=${testName},os=Mac,source_type=infra,`,
params: {
ext: 'png',
name: testName,
os: 'Mac',
source_type: 'infra',
},
comment_indices: null,
},
],
digests: [
{
digest: digest,
status: 'positive',
},
{
digest: closestDigest,
status: 'positive',
},
{
digest: 'ec3b8f27397d99581e06eaa46d6d5837',
status: 'negative',
},
],
total_digests: 3,
},
closestRef: 'pos',
refDiffs: {
neg: {
numDiffPixels: 1689996,
pixelDiffPercent: 99.99976,
maxRGBADiffs: [
255,
255,
255,
0,
],
dimDiffer: true,
combinedMetric: 9.306038,
digest: 'ec3b8f27397d99581e06eaa46d6d5837',
status: 'negative',
paramset: {
ext: [
'png',
],
name: [
testName,
],
source_type: [
'infra',
],
os: [
'Linux',
],
},
},
pos: {
numDiffPixels: 3766,
pixelDiffPercent: 0.22284023,
maxRGBADiffs: [
9,
9,
9,
0,
],
dimDiffer: false,
combinedMetric: 0.082530275,
digest: closestDigest,
status: 'positive',
paramset: {
ext: [
'png',
],
name: [
testName,
],
source_type: [
'infra',
],
os: [
'Mac', 'Linux',
],
},
},
},
});
export const typicalDetails =
makeTypicalSearchResult(
'dots-legend-sk_too-many-digests',
'6246b773851984c726cb2e1cb13510c2',
'99c58c7002073346ff55f446d47d6311');
export const negativeOnly: SearchResult = {
test: 'dots-legend-sk_too-many-digests',
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
triage_history: [
{
user: 'user1@example.com',
ts: '2020-02-25T16:08:18.776Z',
},
{
user: 'user2@example.com',
ts: '2020-02-25T16:05:13.000Z',
},
],
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Mac', 'Linux',
],
},
traces: {
traces: [
{
data: mod2Data,
label: ',name=dots-legend-sk_too-many-digests,os=Linux,source_type=infra,',
params: {
ext: 'png',
name: 'dots-legend-sk_too-many-digests',
os: 'Linux',
source_type: 'infra',
},
comment_indices: null,
},
],
digests: [
{
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
},
{
digest: 'ec3b8f27397d99581e06eaa46d6d5837',
status: 'negative',
},
],
total_digests: 3,
},
closestRef: 'neg',
refDiffs: {
neg: {
numDiffPixels: 1689996,
pixelDiffPercent: 99.99976,
maxRGBADiffs: [
255,
255,
255,
0,
],
dimDiffer: true,
combinedMetric: 9.306038,
digest: 'ec3b8f27397d99581e06eaa46d6d5837',
status: 'negative',
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Mac',
],
},
},
},
};
export const noRefs: SearchResult = {
test: 'dots-legend-sk_too-many-digests',
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
triage_history: [
{
user: 'user1@example.com',
ts: '2020-02-25T16:08:18.776Z',
},
{
user: 'user2@example.com',
ts: '2020-02-25T16:05:13.000Z',
},
],
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Linux',
],
},
traces: {
traces: [
{
data: allTheSame,
label: ',name=dots-legend-sk_too-many-digests,os=Linux,source_type=infra,',
params: {
ext: 'png',
name: 'dots-legend-sk_too-many-digests',
os: 'Linux',
source_type: 'infra',
},
comment_indices: null,
},
],
digests: [
{
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
},
],
total_digests: 3,
},
closestRef: '',
refDiffs: {},
};
export const noRefsYet: SearchResult = {
test: 'dots-legend-sk_too-many-digests',
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
triage_history: [
{
user: 'user1@example.com',
ts: '2020-02-25T16:08:18.776Z',
},
{
user: 'user2@example.com',
ts: '2020-02-25T16:05:13.000Z',
},
],
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Linux',
],
},
traces: {
traces: [
{
data: mod2Data,
label: ',name=dots-legend-sk_too-many-digests,os=Linux,source_type=infra,',
params: {
ext: 'png',
name: 'dots-legend-sk_too-many-digests',
os: 'Linux',
source_type: 'infra',
},
comment_indices: null,
},
],
digests: [
{
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
},
{
digest: 'ec3b8f27397d99581e06eaa46d6d5837',
status: 'negative',
},
],
total_digests: 3,
},
closestRef: '',
refDiffs: {},
};
export const noTraces: SearchResult = {
test: 'dots-legend-sk_too-many-digests',
digest: '6246b773851984c726cb2e1cb13510c2',
status: 'positive',
triage_history: [
{
user: 'user1@example.com',
ts: '2020-02-25T16:08:18.776Z',
},
{
user: 'user2@example.com',
ts: '2020-02-25T16:05:13.000Z',
},
],
traces: {
traces: [],
digests: [],
total_digests: 0,
},
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Mac', 'Linux',
],
},
closestRef: 'pos',
refDiffs: {
neg: {
numDiffPixels: 1689996,
pixelDiffPercent: 99.99976,
maxRGBADiffs: [
255,
255,
255,
0,
],
dimDiffer: true,
combinedMetric: 9.306038,
digest: 'ec3b8f27397d99581e06eaa46d6d5837',
status: 'negative',
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Linux',
],
},
},
pos: {
numDiffPixels: 3766,
pixelDiffPercent: 0.22284023,
maxRGBADiffs: [
9,
9,
9,
0,
],
dimDiffer: false,
combinedMetric: 0.082530275,
digest: '99c58c7002073346ff55f446d47d6311',
status: 'positive',
paramset: {
ext: [
'png',
],
name: [
'dots-legend-sk_too-many-digests',
],
source_type: [
'infra',
],
os: [
'Mac', 'Linux',
],
},
},
},
};
const tsStartTime = 1583130000; // an arbitrary timestamp.
function makeCommits(n: number): Commit[] {
const rv: Commit[] = [];
for (let i = 0; i < n; i++) {
rv.push({
id: 'commit_id',
commit_time: tsStartTime + i * 123, // arbitrary spacing
hash: `${i}`.padEnd(32, '0'), // make a deterministic "md5 hash", which is 32 chars long
author: `user${i % 7}@example.com`,
message: `This is a nice message. I've repeated it ${i + 1} time(s)`,
cl_url: '',
});
}
return rv;
}
export const twoHundredCommits = makeCommits(200);