main function

void main()

Implementation

void main() {
  group('findElementsRepeatedExactlyKTimes', () {
    test('finds elements repeated exactly k times', () {
      final List<int> nums = <int>[1, 2, 2, 3, 3, 3, 4];
      expect(findElementsRepeatedExactlyKTimes(nums, 2), <int>[2]);
      expect(findElementsRepeatedExactlyKTimes(nums, 3), <int>[3]);
    });

    test('returns empty list when no elements match k', () {
      final List<int> nums = <int>[1, 1, 1];
      expect(findElementsRepeatedExactlyKTimes(nums, 2), <dynamic>[]);
    });

    test('handles string list correctly', () {
      final List<String> words = <String>[
        'a',
        'b',
        'a',
        'b',
        'b',
        'c',
        'd',
        'd',
      ];
      expect(findElementsRepeatedExactlyKTimes(words, 2), <String>['a', 'd']);
    });

    test('returns empty list for empty input', () {
      expect(findElementsRepeatedExactlyKTimes(<int>[], 1), <dynamic>[]);
    });

    test('throws for invalid k', () {
      expect(
        () => findElementsRepeatedExactlyKTimes(<int>[1, 2], 0),
        throwsArgumentError,
      );
    });

    test('handles case where element appears once', () {
      final List<int> nums = <int>[5, 6, 5, 7, 8];
      expect(findElementsRepeatedExactlyKTimes(nums, 1), <int>[6, 7, 8]);
    });
  });
}