You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-08-07 21:23:00 +03:00
Clean up some unit test logs (#7857)
* kill some unit test logs in arrays-test Signed-off-by: Kerry Archibald <kerrya@element.io> * remove mock logs that are asserted against anyway * remove more logs Signed-off-by: Kerry Archibald <kerrya@element.io> * fix safeCOunterpartTranslate warnings in tests Signed-off-by: Kerry Archibald <kerrya@element.io> * more safeCounterpartTranslate warnings Signed-off-by: Kerry Archibald <kerrya@element.io> * lint Signed-off-by: Kerry Archibald <kerrya@element.io> * remove more logs Signed-off-by: Kerry Archibald <kerrya@element.io> * add helper Signed-off-by: Kerry Archibald <kerrya@element.io> * naming Signed-off-by: Kerry Archibald <kerrya@element.io>
This commit is contained in:
@@ -30,8 +30,10 @@ import {
|
||||
GroupedArray,
|
||||
} from "../../src/utils/arrays";
|
||||
|
||||
function expectSample(i: number, input: number[], expected: number[], smooth = false) {
|
||||
console.log(`Resample case index: ${i}`); // for debugging test failures
|
||||
type TestParams = { input: number[], output: number[] };
|
||||
type TestCase = [string, TestParams];
|
||||
|
||||
function expectSample(input: number[], expected: number[], smooth = false) {
|
||||
const result = (smooth ? arraySmoothingResample : arrayFastResample)(input, expected.length);
|
||||
expect(result).toBeDefined();
|
||||
expect(result).toHaveLength(expected.length);
|
||||
@@ -40,60 +42,68 @@ function expectSample(i: number, input: number[], expected: number[], smooth = f
|
||||
|
||||
describe('arrays', () => {
|
||||
describe('arrayFastResample', () => {
|
||||
it('should downsample', () => {
|
||||
[
|
||||
{ input: [1, 2, 3, 4, 5], output: [1, 4] }, // Odd -> Even
|
||||
{ input: [1, 2, 3, 4, 5], output: [1, 3, 5] }, // Odd -> Odd
|
||||
{ input: [1, 2, 3, 4], output: [1, 2, 3] }, // Even -> Odd
|
||||
{ input: [1, 2, 3, 4], output: [1, 3] }, // Even -> Even
|
||||
].forEach((c, i) => expectSample(i, c.input, c.output));
|
||||
});
|
||||
const downsampleCases: TestCase[] = [
|
||||
['Odd -> Even', { input: [1, 2, 3, 4, 5], output: [1, 4] }],
|
||||
['Odd -> Odd', { input: [1, 2, 3, 4, 5], output: [1, 3, 5] }],
|
||||
['Even -> Odd', { input: [1, 2, 3, 4], output: [1, 2, 3] }],
|
||||
['Even -> Even', { input: [1, 2, 3, 4], output: [1, 3] }],
|
||||
];
|
||||
it.each(downsampleCases)('downsamples correctly from %s', (_d, { input, output }) =>
|
||||
expectSample(input, output),
|
||||
);
|
||||
|
||||
it('should upsample', () => {
|
||||
[
|
||||
{ input: [1, 2, 3], output: [1, 1, 2, 2, 3, 3] }, // Odd -> Even
|
||||
{ input: [1, 2, 3], output: [1, 1, 2, 2, 3] }, // Odd -> Odd
|
||||
{ input: [1, 2], output: [1, 1, 1, 2, 2] }, // Even -> Odd
|
||||
{ input: [1, 2], output: [1, 1, 1, 2, 2, 2] }, // Even -> Even
|
||||
].forEach((c, i) => expectSample(i, c.input, c.output));
|
||||
});
|
||||
const upsampleCases: TestCase[] = [
|
||||
['Odd -> Even', { input: [1, 2, 3], output: [1, 1, 2, 2, 3, 3] }],
|
||||
['Odd -> Odd', { input: [1, 2, 3], output: [1, 1, 2, 2, 3] }],
|
||||
['Even -> Odd', { input: [1, 2], output: [1, 1, 1, 2, 2] }],
|
||||
['Even -> Even', { input: [1, 2], output: [1, 1, 1, 2, 2, 2] }],
|
||||
];
|
||||
it.each(upsampleCases)('upsamples correctly from %s', (_d, { input, output }) =>
|
||||
expectSample(input, output),
|
||||
);
|
||||
|
||||
it('should maintain sample', () => {
|
||||
[
|
||||
{ input: [1, 2, 3], output: [1, 2, 3] }, // Odd
|
||||
{ input: [1, 2], output: [1, 2] }, // Even
|
||||
].forEach((c, i) => expectSample(i, c.input, c.output));
|
||||
});
|
||||
const maintainSampleCases: TestCase[] = [
|
||||
['Odd', { input: [1, 2, 3], output: [1, 2, 3] }], // Odd
|
||||
['Even', { input: [1, 2], output: [1, 2] }], // Even
|
||||
];
|
||||
|
||||
it.each(maintainSampleCases)('maintains samples for %s', (_d, { input, output }) =>
|
||||
expectSample(input, output),
|
||||
);
|
||||
});
|
||||
|
||||
describe('arraySmoothingResample', () => {
|
||||
it('should downsample', () => {
|
||||
// Dev note: these aren't great samples, but they demonstrate the bare minimum. Ideally
|
||||
// we'd be feeding a thousand values in and seeing what a curve of 250 values looks like,
|
||||
// but that's not really feasible to manually verify accuracy.
|
||||
[
|
||||
{ input: [4, 4, 1, 4, 4, 1, 4, 4, 1], output: [3, 3, 3, 3] }, // Odd -> Even
|
||||
{ input: [4, 4, 1, 4, 4, 1, 4, 4, 1], output: [3, 3, 3] }, // Odd -> Odd
|
||||
{ input: [4, 4, 1, 4, 4, 1, 4, 4], output: [3, 3, 3] }, // Even -> Odd
|
||||
{ input: [4, 4, 1, 4, 4, 1, 4, 4], output: [3, 3] }, // Even -> Even
|
||||
].forEach((c, i) => expectSample(i, c.input, c.output, true));
|
||||
});
|
||||
// Dev note: these aren't great samples, but they demonstrate the bare minimum. Ideally
|
||||
// we'd be feeding a thousand values in and seeing what a curve of 250 values looks like,
|
||||
// but that's not really feasible to manually verify accuracy.
|
||||
const downsampleCases: TestCase[] = [
|
||||
['Odd -> Even', { input: [4, 4, 1, 4, 4, 1, 4, 4, 1], output: [3, 3, 3, 3] }],
|
||||
['Odd -> Odd', { input: [4, 4, 1, 4, 4, 1, 4, 4, 1], output: [3, 3, 3] }],
|
||||
['Even -> Odd', { input: [4, 4, 1, 4, 4, 1, 4, 4], output: [3, 3, 3] }],
|
||||
['Even -> Even', { input: [4, 4, 1, 4, 4, 1, 4, 4], output: [3, 3] }],
|
||||
];
|
||||
|
||||
it('should upsample', () => {
|
||||
[
|
||||
{ input: [2, 0, 2], output: [2, 2, 0, 0, 2, 2] }, // Odd -> Even
|
||||
{ input: [2, 0, 2], output: [2, 2, 0, 0, 2] }, // Odd -> Odd
|
||||
{ input: [2, 0], output: [2, 2, 2, 0, 0] }, // Even -> Odd
|
||||
{ input: [2, 0], output: [2, 2, 2, 0, 0, 0] }, // Even -> Even
|
||||
].forEach((c, i) => expectSample(i, c.input, c.output, true));
|
||||
});
|
||||
it.each(downsampleCases)('downsamples correctly from %s', (_d, { input, output }) =>
|
||||
expectSample(input, output, true),
|
||||
);
|
||||
|
||||
it('should maintain sample', () => {
|
||||
[
|
||||
{ input: [2, 0, 2], output: [2, 0, 2] }, // Odd
|
||||
{ input: [2, 0], output: [2, 0] }, // Even
|
||||
].forEach((c, i) => expectSample(i, c.input, c.output, true));
|
||||
});
|
||||
const upsampleCases: TestCase[] = [
|
||||
['Odd -> Even', { input: [2, 0, 2], output: [2, 2, 0, 0, 2, 2] }],
|
||||
['Odd -> Odd', { input: [2, 0, 2], output: [2, 2, 0, 0, 2] }],
|
||||
['Even -> Odd', { input: [2, 0], output: [2, 2, 2, 0, 0] }],
|
||||
['Even -> Even', { input: [2, 0], output: [2, 2, 2, 0, 0, 0] }],
|
||||
];
|
||||
it.each(upsampleCases)('upsamples correctly from %s', (_d, { input, output }) =>
|
||||
expectSample(input, output, true),
|
||||
);
|
||||
|
||||
const maintainCases: TestCase[] = [
|
||||
['Odd', { input: [2, 0, 2], output: [2, 0, 2] }],
|
||||
['Even', { input: [2, 0], output: [2, 0] }],
|
||||
];
|
||||
it.each(maintainCases)('maintains samples for %s', (_d, { input, output }) =>
|
||||
expectSample(input, output),
|
||||
);
|
||||
});
|
||||
|
||||
describe('arrayRescale', () => {
|
||||
|
@@ -19,6 +19,7 @@ import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
||||
import { EventType } from "matrix-js-sdk/src/@types/event";
|
||||
import { EventEmitter } from "events";
|
||||
import { ReactWrapper } from "enzyme";
|
||||
import { Room } from "matrix-js-sdk";
|
||||
|
||||
import { AsyncStoreWithClient } from "../../src/stores/AsyncStoreWithClient";
|
||||
import { mkEvent, mkStubRoom } from "../test-utils";
|
||||
@@ -60,6 +61,24 @@ export const mkRoom = (client: MatrixClient, roomId: string, rooms?: ReturnType<
|
||||
return room;
|
||||
};
|
||||
|
||||
/**
|
||||
* Upserts given events into room.currentState
|
||||
* @param room
|
||||
* @param events
|
||||
*/
|
||||
export const upsertRoomStateEvents = (room: Room, events: MatrixEvent[]): void => {
|
||||
const eventsMap = events.reduce((acc, event) => {
|
||||
const eventType = event.getType();
|
||||
if (!acc.has(eventType)) {
|
||||
acc.set(eventType, new Map());
|
||||
}
|
||||
acc.get(eventType).set(event.getStateKey(), event);
|
||||
return acc;
|
||||
}, room.currentState.events || new Map<string, Map<string, MatrixEvent>>());
|
||||
|
||||
room.currentState.events = eventsMap;
|
||||
};
|
||||
|
||||
export const mkSpace = (
|
||||
client: MatrixClient,
|
||||
spaceId: string,
|
||||
|
Reference in New Issue
Block a user