Rediff.com's Harish Kotian tells us who triumphed, who disappointed in the India-Sri Lanka series.
India were expected to streamroll Sri Lanka, but in the end the World No 1 Test team had to be satisfied with a 1-0 series win.
The islanders, fielding a relatively inexperienced team, showed great determination to bat the whole of Day 5 and force a draw in the final Test in Delhi.
India nearly staged a brilliant come-from-behind win in the rain-hit Test in Kolkata before they routed Sri Lanka in the Nagpur Test by an innings and 239 runs.
It was the Virat Kohli show once again as he continued his golden run with the bat, hitting three centuries in a row, including back to back double centuries.
Murali Vijay, Cheteshwar Pujara and Rohit Sharma also made merry, but it was a forgettable series for Ajinkya Rahane,
Virat Kohli 10/10
Virat made the most of playing against a mediocre Sri Lankan attack as he amassed a mighty 600-plus runs in the series.
The India captain led from the front with centuries in all three games, including back to back double hundreds.
After being dismissed for a duck in the first innings in Kolkata, Virat stormed back with scores of 104 not out, 213, 243 and 50.
He finished with 610 runs at an average of 152 coupled with an impressive strike rate of 82, the most by an Indian batsman in a three Test series and the fourth highest overall in Tests.
India registered a world record nine series wins in a row.
It was not only about scoring runs for Kohli but the manner in which he scored that impressed everyone. He looked to assert himself with the bat as he not only scored the hundreds and double hundreds, but got them at a quick rate.
Virat set quite a few records in the series including the most double centuries by a captain -- six, as he went past the legendary Brian Lara, who had five double tons as West Indies skipper.
Cheteshwar Pujara (9/10)
'Chottu' continues to be the rock of India's batting.
He lived up to his billing with a century and half-century in the series for a tally of 289 runs in the three games.
He saved India the blushes on the opening day in Kolkata on a difficult wicket with a fighting knock of 52.
Chottu is the leading run getter in Tests in 2017 with 1,140 runs in 11 games and no doubt holds the key to India's fortunes in South Africa.
Ajinkya Rahane (2/10)
'Jinks' had another poor showing in a home series.
The India vice-captain scored just 17 runs in five innings. Only once did he manage to get to double digits.
Jinks has the best record in the present Indian team overseas and we believe he will erase this series memory in South Africa with some match-winning scores.
Murali Vijay (9/10)
Murali Vijay rightly earned his spot as India's No 1 opener with back to back centuries in the last two Tests.
After being dropped for the first Test as India went in with the in-form duo of K L Rahul and Shikhar Dhawan, Vijay made it back after the latter took a break from the second game.
Under pressure Vijay made the most of the opportunity as he scored 128 classy runs.
At the Ferozeshah Kotla, Vijay scored an elegant 155 and ended the series with 292 runs in two games.
Shikhar Dhawan (8/10)
Shikhar is one of the few Indian players who feature in all three formats.
And his impact at the top of the order is quite telling as he consistently comes up with big knocks.
In the first Test, he hit a quickfire 94 to lead India's superb turnaround before Sri Lanka escaped with a draw late on Day 5.
He hit a swift 67 in the second innings in Delhi and tallied 192 runs for the series.
K L Rahul (7/10)
The young opener had a superb run of eight half-centuries in nine innings before he failed in the only innings he played in Nagpur and was promptly dropped for the Delhi game.
Rahul -- who scored 79 in Kolkata -- needs to convert half-centuries into big knocks if he has to seal his place in the side.
By his standards, his 86 runs in three innings at an average of 28 is not par for the course.
Rohit Sharma (8/10)
Rohit has enjoyed Virat's backing as far as his Test career is concerned.
He didn't disappoint after he was presented another opportunity to resurrect his Test career.
Rohit announced his comeback with a fine 102 not out in the Nagpur Test and followed it up with twin half-centuries in Delhi.
Rohit will a key options in the middle order in South Africa.
He finished with a magical average of 217 in the series after being dismissed just once.
Wriddhiman Saha (6/10)
With the bat, Wriddhiman Saha didn't have much to do with the top and middle order among the runs.
W lived up to expectations with the gloves taking nine catches, rock solid against both pace and spin.
These days, W comes in after Ravichandran Ashwin and sometimes Ravindra Jadeja, so for now India is primarily looking at his 'keeping more than his batting.
Ravichandran Ashwin (6/10)
Ashwin was the highest wicket-taker in the series with 12 wickets, but he was not at his best.
Ashwin, who usually runs through batting line-ups in home Tests, was not used much in the rain-hit first Test. But he came up with a strong showing in the second Test, picking up 4 wickets in each innings which saw him became the fastest to get to 300 wickets in Test cricket.
However, he struggled in the second innings of the Delhi Test when India's bowlers needed to bowl out the inexperienced Sri Lankans on a fifth day wicket.
With the bat, Ashwin managed just 20 runs in four innings.
Ravindra Jadeja (7/10)
'Sir Ravindra' bowled his heart out on the final day of the Delhi Test, creating quite a few chances on a placid fifth day wicket.
The left=arm spinner took 5 wickets each in the second and third Tests to finish with 10 wickets at an average of 25 compared to Ashwin's average of 29.
He scored just 40 runs in four innings.
Mohammed Shami (8/10)
Shami showed why he is such a potent threat when fully fit.
He bowled an excellent spell in the Kolkata Test, claiming 6 wickets in all, but fitness issues ensured he missed the Nagpur game.
Shami came back for the Delhi Test and picked up three wickets, but was largely ineffective on Day 5. He finished the series with 9 wickets.
India will need to wrap Shami in cotton wool for the next few weeks and ensure he is at his best shape in South Africa.
Ishant Sharma (7/10)
Ishant bowled a lot in this year's Ranji Trophy and made an immediate impact when called up to the Test team.
Replacing Bhuvneshwar Kumar who opted out after the first Test to get married, Ishant gave a fine account of himself.
India's most experienced Test player took 5 five wickets in the Nagpur Test before taking another 3 in Delhi.
Alas, he too failed to make an impression on the fifth day at the Ferozeshah Kotla.
Umesh Yadav (4/10)
Umesh struggled in the two Tests he played and lost his place for the third game.
In Kolkata on a helpful wicket, Umesh took just 3 wickets.
He bagged another 2 wickets at his home ground in Nagpur.
Bhuvneshwar Kumar (8/10)
Bhuvi is another important player who features in all three formats for India.
He made most of the conditions to take 8 wickets in Kolkata, bowling with guile in the Sri Lankan second innings.
Having added a yard of pace, Bhuvi will be very handy in South African conditions.
Virat overtakes Gavaskar, Bradman
'Leadership improves Virat's performance'
Stats: Ashwin matches Warne, Muralitharan
MVP: Kohli rules supreme yet again!