Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LON | Amirhossein Aminian | Module-structuring-and-testing-data | sprint3 #142

Open
wants to merge 38 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
a9422f3
get-angle
AmirhosseinAminian Nov 10, 2024
fcbc6ce
get-card-value
AmirhosseinAminian Nov 11, 2024
c4029b3
fraction
AmirhosseinAminian Nov 12, 2024
73fb2ad
valid-triangle
AmirhosseinAminian Nov 12, 2024
5f53537
rotate-chart
AmirhosseinAminian Nov 13, 2024
22b26ab
credit_card_number
AmirhosseinAminian Nov 13, 2024
d0f894d
count_char
AmirhosseinAminian Nov 14, 2024
a04f883
ordinal_number-test
AmirhosseinAminian Nov 14, 2024
37c799f
Fixing feedback
AmirhosseinAminian Nov 14, 2024
3a19cbb
is_prime
AmirhosseinAminian Nov 14, 2024
9617648
feedback
AmirhosseinAminian Nov 14, 2024
048a134
password_validation
AmirhosseinAminian Nov 14, 2024
7f4fdbe
repeat_test
AmirhosseinAminian Nov 14, 2024
0696a5a
find.js
AmirhosseinAminian Nov 14, 2024
bf0c3b5
find.js
AmirhosseinAminian Nov 14, 2024
bb8e1c8
Merge branch 'main' into amiraminia/sprint3
SallyMcGrath Nov 21, 2024
2ce2bba
java to javascript
AmirhosseinAminian Nov 21, 2024
004e0ec
Merge branch 'amiraminia/sprint3' of https://github.com/Amir200524/Mo…
AmirhosseinAminian Nov 21, 2024
6d213de
java to javascript
AmirhosseinAminian Nov 21, 2024
b402751
java to javascript
AmirhosseinAminian Nov 21, 2024
e964339
converting to JavaScript
AmirhosseinAminian Nov 21, 2024
c970c82
more test case
AmirhosseinAminian Nov 21, 2024
fd5fd05
jest test
AmirhosseinAminian Nov 23, 2024
e480c7d
deleted example file
AmirhosseinAminian Nov 23, 2024
9423d02
generating test.js
AmirhosseinAminian Nov 23, 2024
b5dd0e1
fixing feedback
AmirhosseinAminian Nov 23, 2024
2160580
fixing password.test
AmirhosseinAminian Nov 23, 2024
6fbaaa4
generating count.test
AmirhosseinAminian Nov 23, 2024
e8ae613
generating get-ordinalnumber.test
AmirhosseinAminian Nov 23, 2024
e54439f
generating password-validator.test
AmirhosseinAminian Nov 23, 2024
e112659
generating repeat.test
AmirhosseinAminian Nov 23, 2024
9507417
fixing code
AmirhosseinAminian Nov 23, 2024
acf58fb
fixing repeat.test & repeat.js
AmirhosseinAminian Nov 23, 2024
67e8477
test of number of digits is exactly 16
AmirhosseinAminian Nov 30, 2024
b71f5a4
generate ifs for special case and skip even numbers
AmirhosseinAminian Nov 30, 2024
c88ad5f
export previousPasswords
AmirhosseinAminian Nov 30, 2024
b547b6c
Handles the special case & Eliminates even numbers
AmirhosseinAminian Nov 30, 2024
4018a61
Shift Normalization
AmirhosseinAminian Nov 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
credit_card_number
  • Loading branch information
AmirhosseinAminian committed Nov 13, 2024
commit 22b26ab7e227e72e22d58f14a7131116f08f44b2
8 changes: 4 additions & 4 deletions Sprint-3/revise/implement/card-validator.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ Here are the rules for a valid number:

For example, the following credit card numbers are valid:

```markdown
markdown
9999777788880000
6666666666661666
```


And the following credit card numbers are invalid:

```markdown
markdown
a92332119c011112 (invalid characters)
4444444444444444 (only one type of number)
1111111111111110 (sum less than 16)
6666666666666661 (odd final number)
```


These are the requirements your project needs to fulfill:

Expand Down
30 changes: 30 additions & 0 deletions Sprint-3/revise/implement/creditCardValidator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
function validateCreditCard(cardNumber) {
if (typeof cardNumber !== 'string' || cardNumber.length !== 16 || !/^\d{16}$/.test(cardNumber)) {
return false;
}

const uniqueDigits = new Set(cardNumber);
if (uniqueDigits.size < 2) {
return false;
}

if (parseInt(cardNumber[15]) % 2 !== 0) {
return false;
}

const sumOfDigits = [...cardNumber].reduce((sum, digit) => sum + parseInt(digit), 0);
if (sumOfDigits <= 16) {
return false;
}

// If all checks pass, return true
return true;
}

// Test cases
console.log(validateCreditCard("9999777788880000")); // true
console.log(validateCreditCard("6666666666661666")); // true
console.log(validateCreditCard("a92332119c011112")); // false (invalid characters)
console.log(validateCreditCard("4444444444444444")); // false (only one type of number)
console.log(validateCreditCard("1111111111111110")); // false (sum less than 16)
console.log(validateCreditCard("6666666666666661")); // false (odd final number)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not check also cases where number of digits is not exactly 16?