dart-exercism/isogram/test/isogram_test.dart

79 lines
2.5 KiB
Dart
Raw Permalink Normal View History

2024-10-14 11:37:17 +02:00
import 'package:isogram/isogram.dart';
import 'package:test/test.dart';
void main() {
final isogram = Isogram();
group('Isogram', () {
test('empty string', () {
final result = isogram.isIsogram('');
expect(result, equals(true));
}, skip: false);
test('isogram with only lower case characters', () {
final result = isogram.isIsogram('isogram');
expect(result, equals(true));
}, skip: false);
test('word with one duplicated character', () {
final result = isogram.isIsogram('eleven');
expect(result, equals(false));
}, skip: false);
test('word with one duplicated character from the end of the alphabet', () {
final result = isogram.isIsogram('zzyzx');
expect(result, equals(false));
}, skip: false);
test('longest reported english isogram', () {
final result = isogram.isIsogram('subdermatoglyphic');
expect(result, equals(true));
}, skip: false);
test('word with duplicated character in mixed case', () {
final result = isogram.isIsogram('Alphabet');
expect(result, equals(false));
}, skip: false);
test('word with duplicated character in mixed case, lowercase first', () {
final result = isogram.isIsogram('alphAbet');
expect(result, equals(false));
}, skip: false);
test('hypothetical isogrammic word with hyphen', () {
final result = isogram.isIsogram('thumbscrew-japingly');
expect(result, equals(true));
}, skip: false);
test('hypothetical word with duplicated character following hyphen', () {
final result = isogram.isIsogram('thumbscrew-jappingly');
expect(result, equals(false));
}, skip: false);
test('isogram with duplicated hyphen', () {
final result = isogram.isIsogram('six-year-old');
expect(result, equals(true));
}, skip: false);
test('made-up name that is an isogram', () {
final result = isogram.isIsogram('Emily Jung Schwartzkopf');
expect(result, equals(true));
}, skip: false);
test('duplicated character in the middle', () {
final result = isogram.isIsogram('accentor');
expect(result, equals(false));
}, skip: false);
test('same first and last characters', () {
final result = isogram.isIsogram('angola');
expect(result, equals(false));
}, skip: false);
test('word with duplicated character and with two hyphens', () {
final result = isogram.isIsogram('up-to-date');
expect(result, equals(false));
}, skip: false);
});
}