79 lines
2.5 KiB
Dart
79 lines
2.5 KiB
Dart
|
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);
|
||
|
});
|
||
|
}
|