Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
74
Task/Natural-sorting/Sidef/natural-sorting-2.sidef
Normal file
74
Task/Natural-sorting/Sidef/natural-sorting-2.sidef
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
var tests = [
|
||||
[
|
||||
"Task 1a\nSort while ignoring leading spaces.",
|
||||
[
|
||||
'ignore leading spaces: 1', ' ignore leading spaces: 4',
|
||||
' ignore leading spaces: 3', ' ignore leading spaces: 2'
|
||||
],
|
||||
{ .trim } # builtin method.
|
||||
],
|
||||
[
|
||||
"Task 1b\nSort while ignoring multiple adjacent spaces.",
|
||||
[
|
||||
'ignore m.a.s spaces: 3', 'ignore m.a.s spaces: 1',
|
||||
'ignore m.a.s spaces: 4', 'ignore m.a.s spaces: 2'
|
||||
],
|
||||
{ .collapse }
|
||||
],
|
||||
[
|
||||
"Task 2\nSort with all white space normalized to regular spaces.",
|
||||
[
|
||||
"Normalized\tspaces: 4", "Normalized\xa0spaces: 1",
|
||||
"Normalized\x20spaces: 2", "Normalized\nspaces: 3"
|
||||
],
|
||||
{ .normalize }
|
||||
],
|
||||
[
|
||||
"Task 3\nSort case independently.",
|
||||
[
|
||||
'caSE INDEPENDENT: 3', 'casE INDEPENDENT: 2',
|
||||
'cASE INDEPENDENT: 4', 'case INDEPENDENT: 1'
|
||||
],
|
||||
{ .lc } # builtin method
|
||||
],
|
||||
[
|
||||
"Task 4\nSort groups of digits in natural number order.",
|
||||
%w(Foo100bar99baz0.txt foo100bar10baz0.txt foo1000bar99baz10.txt
|
||||
foo1000bar99baz9.txt 201st 32nd 3rd 144th 17th 2 95),
|
||||
{ .naturally }
|
||||
],
|
||||
[
|
||||
"Task 5 ( mixed with 1, 2, 3 & 4 )\n"
|
||||
+ "Sort titles, normalize white space, collapse multiple spaces to\n"
|
||||
+ "single, trim leading white space, ignore common leading articles\n"
|
||||
+ 'and sort digit groups in natural order.',
|
||||
[
|
||||
'The Wind in the Willows 8', ' The 39 Steps 3',
|
||||
'The 7th Seal 1', 'Wanda 6',
|
||||
'A Fish Called Wanda 5', ' The Wind and the Lion 7',
|
||||
'Any Which Way But Loose 4', '12 Monkeys 2'
|
||||
],
|
||||
{ .normalize.collapse.trim.title.naturally }
|
||||
],
|
||||
[
|
||||
"Task 6, 7, 8\nMap letters in Latin1 that have accents or decompose to two\n"
|
||||
+ 'characters to their base characters for sorting.',
|
||||
%w(apple Ball bald car Card above Æon æon aether
|
||||
niño nina e-mail Évian evoke außen autumn),
|
||||
{ .latin1_decompose.naturally }
|
||||
]
|
||||
];
|
||||
|
||||
tests.each { |case|
|
||||
var code = case.pop;
|
||||
var array = case.pop;
|
||||
say case.pop+"\n";
|
||||
|
||||
say "Standard Sort:\n";
|
||||
array.sort.each { .say };
|
||||
|
||||
say "\nNatural Sort:\n";
|
||||
array.sort_by(code).each { .say };
|
||||
|
||||
say "\n#{'*' * 40}\n";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue