@@ -14,7 +14,7 @@ use book_store::*;
14
14
/// in terms of this function.
15
15
///
16
16
/// Expected input format: ('basket', 'targetgrouping')
17
- fn process_total_case ( input : ( Vec < usize > , Vec < Vec < usize > > ) , expected : f64 ) {
17
+ fn process_total_case ( input : ( Vec < usize > , Vec < Vec < usize > > ) , expected : usize ) {
18
18
assert_eq ! (
19
19
lowest_price( & input. 0 ) ,
20
20
expected
@@ -30,108 +30,108 @@ fn process_total_case(input: (Vec<usize>, Vec<Vec<usize>>), expected: f64) {
30
30
#[ test]
31
31
/// Only a single book
32
32
fn test_only_a_single_book ( ) {
33
- process_total_case ( ( vec ! [ 1 ] , vec ! [ vec![ 1 ] ] ) , 8.0 ) ;
33
+ process_total_case ( ( vec ! [ 1 ] , vec ! [ vec![ 1 ] ] ) , 800 ) ;
34
34
}
35
35
36
36
37
37
#[ test]
38
38
#[ ignore]
39
39
/// Two of the same book
40
40
fn test_two_of_the_same_book ( ) {
41
- process_total_case ( ( vec ! [ 2 , 2 ] , vec ! [ vec![ 2 ] , vec![ 2 ] ] ) , 16.0 ) ;
41
+ process_total_case ( ( vec ! [ 2 , 2 ] , vec ! [ vec![ 2 ] , vec![ 2 ] ] ) , 1_600 ) ;
42
42
}
43
43
44
44
45
45
#[ test]
46
46
#[ ignore]
47
47
/// Empty basket
48
48
fn test_empty_basket ( ) {
49
- process_total_case ( ( vec ! [ ] , vec ! [ ] ) , 0.0 ) ;
49
+ process_total_case ( ( vec ! [ ] , vec ! [ ] ) , 0 ) ;
50
50
}
51
51
52
52
53
53
#[ test]
54
54
#[ ignore]
55
55
/// Two different books
56
56
fn test_two_different_books ( ) {
57
- process_total_case ( ( vec ! [ 1 , 2 ] , vec ! [ vec![ 1 , 2 ] ] ) , 15.2 ) ;
57
+ process_total_case ( ( vec ! [ 1 , 2 ] , vec ! [ vec![ 1 , 2 ] ] ) , 1_520 ) ;
58
58
}
59
59
60
60
61
61
#[ test]
62
62
#[ ignore]
63
63
/// Three different books
64
64
fn test_three_different_books ( ) {
65
- process_total_case ( ( vec ! [ 1 , 2 , 3 ] , vec ! [ vec![ 1 , 2 , 3 ] ] ) , 21.6 ) ;
65
+ process_total_case ( ( vec ! [ 1 , 2 , 3 ] , vec ! [ vec![ 1 , 2 , 3 ] ] ) , 2_160 ) ;
66
66
}
67
67
68
68
69
69
#[ test]
70
70
#[ ignore]
71
71
/// Four different books
72
72
fn test_four_different_books ( ) {
73
- process_total_case ( ( vec ! [ 1 , 2 , 3 , 4 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] ] ) , 25.6 ) ;
73
+ process_total_case ( ( vec ! [ 1 , 2 , 3 , 4 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] ] ) , 2_560 ) ;
74
74
}
75
75
76
76
77
77
#[ test]
78
78
#[ ignore]
79
79
/// Five different books
80
80
fn test_five_different_books ( ) {
81
- process_total_case ( ( vec ! [ 1 , 2 , 3 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] ] ) , 30.0 ) ;
81
+ process_total_case ( ( vec ! [ 1 , 2 , 3 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] ] ) , 3_000 ) ;
82
82
}
83
83
84
84
85
85
#[ test]
86
86
#[ ignore]
87
87
/// Two groups of four is cheaper than group of five plus group of three
88
88
fn test_two_groups_of_four_is_cheaper_than_group_of_five_plus_group_of_three ( ) {
89
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 , 3 , 5 ] ] ) , 51.2 ) ;
89
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 , 3 , 5 ] ] ) , 5_120 ) ;
90
90
}
91
91
92
92
93
93
#[ test]
94
94
#[ ignore]
95
95
/// Group of four plus group of two is cheaper than two groups of three
96
96
fn test_group_of_four_plus_group_of_two_is_cheaper_than_two_groups_of_three ( ) {
97
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 4 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 ] ] ) , 40.8 ) ;
97
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 4 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 ] ] ) , 4_080 ) ;
98
98
}
99
99
100
100
101
101
#[ test]
102
102
#[ ignore]
103
103
/// Two each of first 4 books and 1 copy each of rest
104
104
fn test_two_each_of_first_4_books_and_1_copy_each_of_rest ( ) {
105
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 ] ] ) , 55.6 ) ;
105
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 ] ] ) , 5_560 ) ;
106
106
}
107
107
108
108
109
109
#[ test]
110
110
#[ ignore]
111
111
/// Two copies of each book
112
112
fn test_two_copies_of_each_book ( ) {
113
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 , 5 ] ] ) , 60.0 ) ;
113
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 , 5 ] ] ) , 6_000 ) ;
114
114
}
115
115
116
116
117
117
#[ test]
118
118
#[ ignore]
119
119
/// Three copies of first book and 2 each of remaining
120
120
fn test_three_copies_of_first_book_and_2_each_of_remaining ( ) {
121
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 1 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 ] ] ) , 68.0 ) ;
121
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 1 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 ] ] ) , 6_800 ) ;
122
122
}
123
123
124
124
125
125
#[ test]
126
126
#[ ignore]
127
127
/// Three each of first 2 books and 2 each of remaining books
128
128
fn test_three_each_of_first_2_books_and_2_each_of_remaining_books ( ) {
129
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 1 , 2 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 ] ] ) , 75.2 ) ;
129
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 1 , 2 ] , vec ! [ vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 , 3 , 4 , 5 ] , vec![ 1 , 2 ] ] ) , 7_520 ) ;
130
130
}
131
131
132
132
#[ test]
133
133
#[ ignore]
134
134
/// Four groups of four are cheaper than two groups each of five and three
135
135
fn test_four_groups_of_four_are_cheaper_than_two_groups_each_of_five_and_three ( ) {
136
- process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 , 3 , 5 ] , vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 , 3 , 5 ] ] ) , 102.4 ) ;
136
+ process_total_case ( ( vec ! [ 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 ] , vec ! [ vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 , 3 , 5 ] , vec![ 1 , 2 , 3 , 4 ] , vec![ 1 , 2 , 3 , 5 ] ] ) , 10_240 ) ;
137
137
}
0 commit comments