// import { RedisCommandArguments } from '@redis/client/lib/commands';
// import { strict as assert } from 'node:assert';
// import {
//     transformTimestampArgument,
//     pushRetentionArgument,
//     TimeSeriesEncoding,
//     pushEncodingArgument,
//     pushChunkSizeArgument,
//     pushDuplicatePolicy,
//     pushLabelsArgument,
//     transformIncrDecrArguments,
//     transformSampleReply,
//     TimeSeriesAggregationType,
//     pushRangeArguments,
//     pushMRangeGroupByArguments,
//     TimeSeriesReducers,
//     pushFilterArgument,
//     pushMRangeArguments,
//     pushWithLabelsArgument,
//     pushMRangeWithLabelsArguments,
//     transformRangeReply,
//     transformMRangeReply,
//     transformMRangeWithLabelsReply,
//     TimeSeriesDuplicatePolicies,
//     pushLatestArgument,
//     TimeSeriesBucketTimestamp
// } from './helpers';

// describe('transformTimestampArgument', () => {
//     it('number', () => {
//         assert.equal(
//             transformTimestampArgument(0),
//             '0'
//         );
//     });

//     it('Date', () => {
//         assert.equal(
//             transformTimestampArgument(new Date(0)),
//             '0'
//         );
//     });

//     it('string', () => {
//         assert.equal(
//             transformTimestampArgument('*'),
//             '*'
//         );
//     });
// });

// function testOptionalArgument(fn: (args: RedisCommandArguments) => unknown): void {
//     it('undefined', () => {
//         assert.deepEqual(
//             fn([]),
//             []
//         );
//     });
// }

// describe('pushRetentionArgument', () => {
//     testOptionalArgument(pushRetentionArgument);

//     it('number', () => {
//         assert.deepEqual(
//             pushRetentionArgument([], 1),
//             ['RETENTION', '1']
//         );
//     });
// });

// describe('pushEncodingArgument', () => {
//     testOptionalArgument(pushEncodingArgument);

//     it('UNCOMPRESSED', () => {
//         assert.deepEqual(
//             pushEncodingArgument([], TimeSeriesEncoding.UNCOMPRESSED),
//             ['ENCODING', 'UNCOMPRESSED']
//         );
//     });
// });

// describe('pushChunkSizeArgument', () => {
//     testOptionalArgument(pushChunkSizeArgument);

//     it('number', () => {
//         assert.deepEqual(
//             pushChunkSizeArgument([], 1),
//             ['CHUNK_SIZE', '1']
//         );
//     });
// });

// describe('pushDuplicatePolicy', () => {
//     testOptionalArgument(pushDuplicatePolicy);

//     it('BLOCK', () => {
//         assert.deepEqual(
//             pushDuplicatePolicy([], TimeSeriesDuplicatePolicies.BLOCK),
//             ['DUPLICATE_POLICY', 'BLOCK']
//         );
//     });
// });

// describe('pushLabelsArgument', () => {
//     testOptionalArgument(pushLabelsArgument);

//     it("{ label: 'value' }", () => {
//         assert.deepEqual(
//             pushLabelsArgument([], { label: 'value' }),
//             ['LABELS', 'label', 'value']
//         );
//     });
// });

// describe('transformIncrDecrArguments', () => {
//     it('without options', () => {
//         assert.deepEqual(
//             transformIncrDecrArguments('TS.INCRBY', 'key', 1),
//             ['TS.INCRBY', 'key', '1']
//         );
//     });

//     it('with TIMESTAMP', () => {
//         assert.deepEqual(
//             transformIncrDecrArguments('TS.INCRBY', 'key', 1, {
//                 TIMESTAMP: '*'
//             }),
//             ['TS.INCRBY', 'key', '1', 'TIMESTAMP', '*']
//         );
//     });

//     it('with UNCOMPRESSED', () => {
//         assert.deepEqual(
//             transformIncrDecrArguments('TS.INCRBY', 'key', 1, {
//                 UNCOMPRESSED: true
//             }),
//             ['TS.INCRBY', 'key', '1', 'UNCOMPRESSED']
//         );
//     });

//     it('with UNCOMPRESSED false', () => {
//         assert.deepEqual(
//             transformIncrDecrArguments('TS.INCRBY', 'key', 1, {
//                 UNCOMPRESSED: false
//             }),
//             ['TS.INCRBY', 'key', '1']
//         );
//     });
// });

// it('transformSampleReply', () => {
//     assert.deepEqual(
//         transformSampleReply([1, '1.1']),
//         {
//             timestamp: 1,
//             value: 1.1
//         }
//     );
// });

// describe('pushRangeArguments', () => {
//     it('without options', () => {
//         assert.deepEqual(
//             pushRangeArguments([], '-', '+'),
//             ['-', '+']
//         );
//     });

//     describe('with FILTER_BY_TS', () => {
//         it('string', () => {
//             assert.deepEqual(
//                 pushRangeArguments([], '-', '+', {
//                     FILTER_BY_TS: ['ts']
//                 }),
//                 ['-', '+', 'FILTER_BY_TS', 'ts']
//             );
//         });

//         it('Array', () => {
//             assert.deepEqual(
//                 pushRangeArguments([], '-', '+', {
//                     FILTER_BY_TS: ['1', '2']
//                 }),
//                 ['-', '+', 'FILTER_BY_TS', '1', '2']
//             );
//         });
//     });

//     it('with FILTER_BY_VALUE', () => {
//         assert.deepEqual(
//             pushRangeArguments([], '-', '+', {
//                 FILTER_BY_VALUE: {
//                     min: 1,
//                     max: 2
//                 }
//             }),
//             ['-', '+', 'FILTER_BY_VALUE', '1', '2']
//         );
//     });

//     it('with COUNT', () => {
//         assert.deepEqual(
//             pushRangeArguments([], '-', '+', {
//                 COUNT: 1
//             }),
//             ['-', '+', 'COUNT', '1']
//         );
//     });

//     it('with ALIGN', () => {
//         assert.deepEqual(
//             pushRangeArguments([], '-', '+', {
//                 ALIGN: 1
//             }),
//             ['-', '+', 'ALIGN', '1']
//         );
//     });

//     describe('with AGGREGATION', () => {
//         it('without options', () => {
//             assert.deepEqual(
//                 pushRangeArguments([], '-', '+', {
//                     AGGREGATION: {
//                         type: TimeSeriesAggregationType.FIRST,
//                         timeBucket: 1
//                     }
//                 }),
//                 ['-', '+', 'AGGREGATION', 'FIRST', '1']
//             );
//         });

//         it('with BUCKETTIMESTAMP', () => {
//             assert.deepEqual(
//                 pushRangeArguments([], '-', '+', {
//                     AGGREGATION: {
//                         type: TimeSeriesAggregationType.FIRST,
//                         timeBucket: 1,
//                         BUCKETTIMESTAMP: TimeSeriesBucketTimestamp.LOW
//                     }
//                 }),
//                 ['-', '+', 'AGGREGATION', 'FIRST', '1', 'BUCKETTIMESTAMP', '-']
//             );
//         });

//         it('with BUCKETTIMESTAMP', () => {
//             assert.deepEqual(
//                 pushRangeArguments([], '-', '+', {
//                     AGGREGATION: {
//                         type: TimeSeriesAggregationType.FIRST,
//                         timeBucket: 1,
//                         EMPTY: true
//                     }
//                 }),
//                 ['-', '+', 'AGGREGATION', 'FIRST', '1', 'EMPTY']
//             );
//         });
//     });

//     it('with FILTER_BY_TS, FILTER_BY_VALUE, COUNT, ALIGN, AGGREGATION', () => {
//         assert.deepEqual(
//             pushRangeArguments([], '-', '+', {
//                 FILTER_BY_TS: ['ts'],
//                 FILTER_BY_VALUE: {
//                     min: 1,
//                     max: 2
//                 },
//                 COUNT: 1,
//                 ALIGN: 1,
//                 AGGREGATION: {
//                     type: TimeSeriesAggregationType.FIRST,
//                     timeBucket: 1,
//                     BUCKETTIMESTAMP: TimeSeriesBucketTimestamp.LOW,
//                     EMPTY: true
//                 }
//             }),
//             ['-', '+', 'FILTER_BY_TS', 'ts', 'FILTER_BY_VALUE', '1', '2',
//             'COUNT', '1', 'ALIGN', '1', 'AGGREGATION', 'FIRST', '1', 'BUCKETTIMESTAMP', '-', 'EMPTY']
//         );
//     });
// });

// describe('pushMRangeGroupByArguments', () => {
//     it('undefined', () => {
//         assert.deepEqual(
//             pushMRangeGroupByArguments([]),
//             []
//         );
//     });

//     it('with GROUPBY', () => {
//         assert.deepEqual(
//             pushMRangeGroupByArguments([], {
//                 label: 'label',
//                 reducer: TimeSeriesReducers.MAXIMUM
//             }),
//             ['GROUPBY', 'label', 'REDUCE', 'MAX']
//         );
//     });
// });

// describe('pushFilterArgument', () => {
//     it('string', () => {
//         assert.deepEqual(
//             pushFilterArgument([], 'label=value'),
//             ['FILTER', 'label=value']
//         );
//     });

//     it('Array', () => {
//         assert.deepEqual(
//             pushFilterArgument([], ['1=1', '2=2']),
//             ['FILTER', '1=1', '2=2']
//         );
//     });
// });

// describe('pushMRangeArguments', () => {
//     it('without options', () => {
//         assert.deepEqual(
//             pushMRangeArguments([], '-', '+', 'label=value'),
//             ['-', '+', 'FILTER', 'label=value']
//         );
//     });

//     it('with GROUPBY', () => {
//         assert.deepEqual(
//             pushMRangeArguments([], '-', '+', 'label=value', {
//                 GROUPBY: {
//                     label: 'label',
//                     reducer: TimeSeriesReducers.MAXIMUM
//                 }
//             }),
//             ['-', '+', 'FILTER', 'label=value', 'GROUPBY', 'label', 'REDUCE', 'MAX']
//         );
//     });
// });

// it('pushMRangeWithLabelsArguments', () => {
//     assert.deepEqual(
//         pushMRangeWithLabelsArguments([], '-', '+', 'label=value'),
//         ['-', '+', 'WITHLABELS', 'FILTER', 'label=value']
//     );
// });

// it('transformRangeReply', () => {
//     assert.deepEqual(
//         transformRangeReply([[1, '1.1'], [2, '2.2']]),
//         [{
//             timestamp: 1,
//             value: 1.1
//         }, {
//             timestamp: 2,
//             value: 2.2
//         }]
//     );
// });

// describe('transformMRangeReply', () => {
//     assert.deepEqual(
//         transformMRangeReply([[
//             'key',
//             [],
//             [[1, '1.1'], [2, '2.2']]
//         ]]),
//         [{
//             key: 'key',
//             samples: [{
//                 timestamp: 1,
//                 value: 1.1
//             }, {
//                 timestamp: 2,
//                 value: 2.2
//             }]
//         }]
//     );
// });

// describe('transformMRangeWithLabelsReply', () => {
//     assert.deepEqual(
//         transformMRangeWithLabelsReply([[
//             'key',
//             [['label', 'value']],
//             [[1, '1.1'], [2, '2.2']]
//         ]]),
//         [{
//             key: 'key',
//             labels: {
//                 label: 'value'
//             },
//             samples: [{
//                 timestamp: 1,
//                 value: 1.1
//             }, {
//                 timestamp: 2,
//                 value: 2.2
//             }]
//         }]
//     );
// });

// describe('pushLatestArgument', () => {
//     it('undefined', () => {
//         assert.deepEqual(
//             pushLatestArgument([]),
//             []
//         );
//     });

//     it('false', () => {
//         assert.deepEqual(
//             pushLatestArgument([], false),
//             []
//         );
//     });

//     it('true', () => {
//         assert.deepEqual(
//             pushLatestArgument([], true),
//             ['LATEST']
//         );
//     });
// })
