It’s true that using Contracts.Requires and Contracts.Ensure in C# methods will reduce the necessary unit tests for that methods? Can I just ignore the range of values that are not in conformity with the contracts or those values should also be included in the unit tests?
It should not, design by contract is not intended to replace unit testing, or any kind of testing. Pre-conditions and post-conditions are used to enforce a contract, but the end client of that contract needs to make sure that such contract is still in place. So you need to keep the unit tests in place with all range of values to make sure everything is the way it should be.