tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
41
Task/SEDOLs/JavaScript/sedols.js
Normal file
41
Task/SEDOLs/JavaScript/sedols.js
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
function sedol(input) {
|
||||
return input + sedol_check_digit(input);
|
||||
}
|
||||
|
||||
var weight = [1, 3, 1, 7, 3, 9, 1];
|
||||
function sedol_check_digit(char6) {
|
||||
if (char6.search(/^[0-9BCDFGHJKLMNPQRSTVWXYZ]{6}$/) == -1)
|
||||
throw "Invalid SEDOL number '" + char6 + "'";
|
||||
var sum = 0;
|
||||
for (var i = 0; i < char6.length; i++)
|
||||
sum += weight[i] * parseInt(char6.charAt(i), 36);
|
||||
var check = (10 - sum%10) % 10;
|
||||
return check.toString();
|
||||
}
|
||||
|
||||
var input = [
|
||||
'710889', 'B0YBKJ', '406566', 'B0YBLH', '228276',
|
||||
'B0YBKL', '557910', 'B0YBKR', '585284', 'B0YBKT',
|
||||
"BOATER" , "12345", "123456", "1234567"
|
||||
];
|
||||
|
||||
var expected = [
|
||||
'7108899', 'B0YBKJ7', '4065663', 'B0YBLH2', '2282765',
|
||||
'B0YBKL9', '5579107', 'B0YBKR5', '5852842', 'B0YBKT7',
|
||||
null, null, '1234563', null
|
||||
];
|
||||
|
||||
for (var i in input) {
|
||||
try {
|
||||
var sedolized = sedol(input[i]);
|
||||
if (sedolized == expected[i])
|
||||
print(sedolized);
|
||||
else
|
||||
print("error: calculated sedol for input " + input[i] +
|
||||
" is " + sedolized + ", but it should be " + expected[i]
|
||||
);
|
||||
}
|
||||
catch (e) {
|
||||
print("error: " + e);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue