Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Remove regionfilter related utility methods
Change-Id: I1ab96280fa71cac3745eb7e7210b15a1e5bc78f8
  • Loading branch information
santhoshtr committed May 17, 2016
1 parent 7dcdab7 commit ed2427b
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 239 deletions.
161 changes: 0 additions & 161 deletions src/jquery.uls.data.utils.js
Expand Up @@ -99,21 +99,6 @@
return autonymsByCode;
};

/**
* Returns an array of all region codes.
* @return array
*/
$.uls.data.getAllRegions = function () {
var region,
allRegions = [];

for ( region in $.uls.data.regiongroups ) {
allRegions.push( region );
}

return allRegions;
};

/**
* Returns all languages written in script.
* @param script string
Expand Down Expand Up @@ -148,77 +133,6 @@
return languagesInScripts;
};

/**
* Returns all languages in a given region.
* @param region string
* @return array of strings (languages codes)
*/
$.uls.data.getLanguagesInRegion = function ( region ) {
return $.uls.data.getLanguagesInRegions( [ region ] );
};

/**
* Returns all languages in given regions.
* @param regions array of strings.
* @return array of strings (languages codes)
*/
$.uls.data.getLanguagesInRegions = function ( regions ) {
var language, i,
languagesInRegions = [];

for ( language in $.uls.data.languages ) {
if ( $.uls.data.isRedirect( language ) ) {
continue;
}

for ( i = 0; i < regions.length; i++ ) {
if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {
languagesInRegions.push( language );
break;
}
}
}

return languagesInRegions;
};

/**
* Returns all languages in a region group.
* @param groupNum number.
* @return array of strings (languages codes)
*/
$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {
return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );
};

/**
* Returns an associative array of languages in a region,
* grouped by script.
* @param region string Region code
* @return associative array
*/
$.uls.data.getLanguagesByScriptInRegion = function ( region ) {
var language, script,
languagesByScriptInRegion = {};

for ( language in $.uls.data.languages ) {
if ( $.uls.data.isRedirect( language ) ) {
continue;
}

if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {
script = $.uls.data.getScript( language );

if ( languagesByScriptInRegion[script] === undefined ) {
languagesByScriptInRegion[script] = [];
}
languagesByScriptInRegion[script].push( language );
}
}

return languagesByScriptInRegion;
};

/**
* Returns an associative array of languages in a region,
* grouped by script group.
Expand All @@ -229,15 +143,6 @@
return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );
};

/**
* Returns an associative array of all languages,
* grouped by script group.
* @return associative array
*/
$.uls.data.getAllLanguagesByScriptGroup = function () {
return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );
};

/**
* Get the given list of languages grouped by script.
* @param languages Array of language codes
Expand Down Expand Up @@ -294,72 +199,6 @@
return languagesByScriptGroupInRegions;
};

/**
* Returns an array of languages grouped by region group,
* region, script group and script.
* @return associative array
*/
$.uls.data.getAllLanguagesByRegionAndScript = function () {
var region, regionGroup, language,
script, scriptGroup, regions, regionNum,
allLanguagesByRegionAndScript = {};

for ( region in $.uls.data.regiongroups ) {
regionGroup = $.uls.data.regiongroups[region];

if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {
allLanguagesByRegionAndScript[regionGroup] = {};
}

allLanguagesByRegionAndScript[regionGroup][region] = {};
}

for ( language in $.uls.data.languages ) {
if ( $.uls.data.isRedirect( language ) ) {
continue;
}

script = $.uls.data.getScript( language );
scriptGroup = $.uls.data.getGroupOfScript( script );
regions = $.uls.data.getRegions( language );

for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {
region = regions[regionNum];
regionGroup = $.uls.data.regiongroups[region];

if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {
allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};
}

if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {
allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];
}

allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );
}
}

return allLanguagesByRegionAndScript;
};

/**
* Returns all regions in a region group.
* @param groupNum int
* @return array of strings
*/
$.uls.data.getRegionsInGroup = function ( groupNum ) {
var region,
regionsInGroup = [];

for ( region in $.uls.data.regiongroups ) {
if ( $.uls.data.regiongroups[region] === groupNum ) {
regionsInGroup.push( region );
}
}

return regionsInGroup;
};

/**
* Returns the script group of a script or 'Other' if it doesn't
* belong to any group.
Expand Down
2 changes: 0 additions & 2 deletions test/index.html
Expand Up @@ -12,7 +12,6 @@
<script src="../src/jquery.uls.data.utils.js"></script>
<script src="../src/jquery.uls.lcd.js"></script>
<script src="../src/jquery.uls.languagefilter.js"></script>
<script src="../src/jquery.uls.regionfilter.js"></script>
<script src="../src/jquery.uls.core.js"></script>

<!-- Test framework -->
Expand All @@ -32,4 +31,3 @@
<div id="qunit"></div>
</body>
</html>

78 changes: 2 additions & 76 deletions test/jquery.uls.test.js
Expand Up @@ -99,14 +99,9 @@
assert.ok( $.fn.uls, '$.fn.uls is defined' );
} );

test( '-- $.uls.data testing', 47, function ( assert ) {
test( '-- $.uls.data testing', 30, function ( assert ) {
var autonyms,
allLanguagesByRegionAndScript,
languagesInEU,
languagesByScriptInAM, languagesByScriptInEU,
languagesToGroup, groupedLanguages,
languagesByScriptGroupInEMEA,
allLanguagesByScriptGroup;
languagesToGroup, groupedLanguages;

// Add a language in run time.
// This is done early to make sure that it doesn't break other functions.
Expand Down Expand Up @@ -150,36 +145,6 @@
], 'Correct regions of the Laz language were selected' );
assert.strictEqual( $.uls.data.getRegions( 'no-such-language' ), 'UNKNOWN', 'The region of an invalid language is "UNKNOWN"' );

allLanguagesByRegionAndScript = $.uls.data.getAllLanguagesByRegionAndScript();
assert.deepEqual( allLanguagesByRegionAndScript['4']['AS']['SouthEastAsian']['Bugi'], [
'bug'
], 'All languages in the Buginese script in Asia were selected' );
assert.deepEqual( allLanguagesByRegionAndScript['4']['AS']['SouthAsian']['Guru'], [
'pa-guru'
], 'Only language pa-guru appears as a language in script Guru in SouthAsian languages in Asia' );

languagesInEU = $.uls.data.getLanguagesInRegion( 'EU' );
assert.strictEqual( $.inArray( 'sr-ec', languagesInEU ), -1, 'Language "sr-ec" does not appear in languages of region EU, because it is a redirect' );
assert.ok( $.inArray( 'sr-cyrl', languagesInEU ) > -1, 'Language "sr-cyrl" appears in languages of region EU, because it is not a redirect' );

assert.deepEqual( $.uls.data.getLanguagesInRegion( 'PA' ),
[
'ace', 'bi', 'ch', 'en-gb', 'en', 'fj', 'haw', 'hif', 'ho', 'jv', 'jv-java',
'mh', 'mi', 'na', 'niu', 'pih', 'pis', 'pt', 'rtm', 'sm', 'tet',
'to', 'tpi', 'ty', 'wls'
],
'languages of region PA are selected correctly' );
assert.deepEqual( $.uls.data.getLanguagesInRegions( ['AM', 'WW'] ),
[
'acf', 'akz', 'arn', 'aro', 'ase', 'avk', 'ay', 'cho', 'chr', 'chy', 'ciw', 'cr', 'cr-latn', 'en-ca',
'en', 'eo', 'es-419', 'es-formal', 'es', 'esu', 'fr', 'frc', 'gcf', 'gn', 'guc', 'haw', 'hrx', 'ht', 'ia',
'ie', 'ik', 'ike-cans', 'ike-latn', 'io', 'iu', 'jam', 'jbo', 'kgp', 'kl', 'lad-latn', 'lad-hebr', 'lfn',
'lkt', 'lut', 'mfe', 'mic', 'miq', 'mus', 'nah', 'nl-informal', 'nl', 'nov', 'nv', 'pap', 'pbb', 'pdc',
'pdt', 'ppl', 'pt-br', 'pt', 'qu', 'qug', 'rap', 'sei', 'simple', 'srn', 'tokipona', 'tzl', 'vo', 'yi', 'yrl', 'yua'
],
'languages of regions AM and WW are selected correctly'
);

assert.deepEqual( $.uls.data.getLanguagesInScript( 'Knda' ), [
'kn', 'tcy'
], 'languages in script Knda are selected correctly' );
Expand All @@ -192,27 +157,6 @@
'languages in scripts Geor and Armn are selected correctly'
);

assert.deepEqual( $.uls.data.getRegionsInGroup( 3 ), [
'EU', 'ME', 'AF'
], 'regions in group 3 are selected correctly' );
assert.deepEqual( $.uls.data.getRegionsInGroup( 2 ), [
'AM'
], 'regions in group 2 are selected correctly' );
assert.deepEqual( $.uls.data.getRegionsInGroup( 1 ), [
'WW', 'SP'
], 'regions in group 1 are selected correctly' );

languagesByScriptInAM = $.uls.data.getLanguagesByScriptInRegion( 'AM' );
assert.deepEqual( languagesByScriptInAM['Cans'], [
'cr', 'ike-cans', 'iu'
], 'correct languages in Cans in AM selected' );

languagesByScriptInEU = $.uls.data.getLanguagesByScriptInRegion( 'EU' );
assert.strictEqual( $.inArray( 'sr-el', languagesByScriptInEU['Latn'] ), -1,
'Language "sr-el" does not appear as a Latin-script language in EU, because it is a redirect' );
assert.ok( $.inArray( 'sr-latn', languagesByScriptInEU['Latn'] ) > -1,
'Language "sr-latn" appears as a Latin-script language in EU, because it is not a redirect' );

assert.strictEqual( $.uls.data.getAutonym( 'pa' ), 'ਪੰਜਾਬੀ', 'Correct autonym of the Punjabi language was selected using code pa.' );
assert.strictEqual( $.uls.data.getAutonym( 'pa-guru' ), 'ਪੰਜਾਬੀ', 'Correct autonym of the Punjabi language was selected using code pa-guru.' );

Expand All @@ -234,24 +178,6 @@
assert.deepEqual( $.uls.data.getLanguagesByScriptGroup( languagesToGroup ), groupedLanguages,
'A custom list of languages is grouped correctly using getLanguagesByScriptGroup.' );

languagesByScriptGroupInEMEA = $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getRegionsInGroup( 3 ) );
assert.deepEqual( languagesByScriptGroupInEMEA['WestCaucasian'], [
'hy', 'ka', 'xmf'
], 'Correct languages in WestCaucasian script group in EMEA selected' );
assert.strictEqual( $.inArray( 'sr-ec', languagesByScriptGroupInEMEA['Cyrillic'] ), -1,
'Language "sr-ec" does not appear as a Cyrillic-scriptgroup language in EMEA, because it is a redirect' );
assert.ok( $.inArray( 'sr-cyrl', languagesByScriptGroupInEMEA['Cyrillic'] ) > -1,
'Language "sr-cyrl" appears as a Cyrillic-scriptgroup language in EMEA, because it is not a redirect' );

allLanguagesByScriptGroup = $.uls.data.getAllLanguagesByScriptGroup();
assert.deepEqual( allLanguagesByScriptGroup['Greek'], [
'el', 'grc', 'pnt', 'ruq-grek', 'tsd'
], 'All languages in the Greek script found' );

assert.deepEqual( $.uls.data.getAllRegions(), [
'WW', 'SP', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'
], 'All regions found' );

// autonyms: gn: avañe'ẽ, de: deutsch, hu: magyar, fi: suomi
assert.deepEqual( ['de', 'fi', 'gn', 'hu'].sort( $.uls.data.sortByAutonym ), [
'gn', 'de', 'hu', 'fi'
Expand Down

0 comments on commit ed2427b

Please sign in to comment.