-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtddExample.html
More file actions
85 lines (70 loc) · 3.35 KB
/
tddExample.html
File metadata and controls
85 lines (70 loc) · 3.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// Create a function called salesDiscount that will accept the sale price and the discount rate.
//It will return the discounted sales price.
//assumption: discount can be a string containing %
//assumption: return discounted sales price should be numeric, not formatted string
function salesDiscount(inPrice,inDiscount){
//return inPrice;
//return parseFloat(inDiscount)/100;
//return inPrice - (inPrice*inDiscount);
//inDiscount is a string then parse/100 else use it
if(typeof inPrice == 'string'){ //price must be a number
return -1;
}
if(inPrice < 0){ //price must be 0 or greater
return -1;
}
if( typeof inDiscount == 'string'){
//if parseFloat returns a negative value return -1 else /100 to get a decimal
if(parseFloat(inDiscount) < 0 || isNaN(parseFloat(inDiscount)) ){
return -1
}
else if(inDiscount.indexOf("%") != inDiscount.length - 1){
return -1
}
else if(inDiscount.match("[a-z]")){return - 1}
else{
discount = parseFloat(inDiscount)/100;
}
}
else{
discount = inDiscount;
}
let finalPrice = inPrice - (inPrice * discount);
return Math.round((finalPrice + Number.EPSILON) * 100) / 100;
}
//test cases
console.log("parseFloat(a) " + parseFloat('a'));
console.log("first test: " + salesDiscount() );
console.log("10.00 10% " + salesDiscount(10.00,'10%') );
console.log("10.00 .10 " + salesDiscount(10.00,.10) );
console.log("0 20% " + salesDiscount(0,'20%') );
console.log("10.00 0 " + salesDiscount(10.00,0) );
console.log("-1 10% " + salesDiscount(-1,'10%') );
console.log("a 10% " + salesDiscount('a','10%') );
console.log("10.00 '-10%' " + salesDiscount(10.00,'-10%') );
console.log("10.00 'a' " + salesDiscount(10.00,'a') );
console.log("8.55 5% " + salesDiscount(8.55, '5%'))
console.log("8.55 2.5% " + salesDiscount(8.55, "2.5%"))
console.log("8.55 .025 " + salesDiscount(8.55, .025))
console.log("8.55 0.5% " + salesDiscount(8.55, "0.5%"))
console.log("10.00 % " + salesDiscount(10.00, "%"))
console.log("10.00 %5 " + salesDiscount(10.00, "%5"))
console.log("10.00 5%3 " + salesDiscount(10.00, "5%3"))
console.log("10.00 %53% " + salesDiscount(10.00, "%53%"))
console.log("10.00 a% " + salesDiscount(10.00, "a%"))
console.log("10.00 %a% " + salesDiscount(10.00, "%a%"))
console.log("10.00 4a% " + salesDiscount(10.00, "4a%"))//error
console.log("10.00 %4a% " + salesDiscount(10.00, "%4a%"))
</script>
</head>
<body>
</body>
</html>