using NUnit.Framework; namespace Developpez.Dotnet.Tests { [TestFixture] public class BigMathTests { [Test] public void Test_Modulo() { // données de tests générées aléatoirement avec VS2010, qui a une classe BigInteger var testData = new[] { new { N = "12345678901234567890123456789", K = 97UL, Expected = 44UL }, new { N = "623343000418138899756931572326030036069168023264603039969277067447700273058891721872209116788210157555343008017744519513759448474863327542920", K = 311136196UL, Expected = 251329724UL }, new { N = "894469154489590452414342707668364954400471993795147779655276249502", K = 1136246983UL, Expected = 802170683UL }, new { N = "460519323589015115953092342324812305426753193760874530247717700967761079919089868155938206760895313609989551025885965403856420802466625926547618", K = 296493034UL, Expected = 44617918UL }, new { N = "749308197435686586582699389562482233093856516707728422715991952505235349273518367184495951809299490047147815929663477811928353907311721004657002214672158912888481750783137325381513832515381911517", K = 1433995011UL, Expected = 981231911UL }, new { N = "42421544832520375548245401125708657361688032028974062810692931902487300386910247324074684667874", K = 1430766981UL, Expected = 1190740952UL }, new { N = "29641674675899455617838702632512308373266617195621303929083894115", K = 694317618UL, Expected = 103874717UL }, new { N = "91072350121607901208389289362501746513068807922103084410189208861086138713057236616841632543476993583606437145395268202035369523706", K = 842686648UL, Expected = 296916266UL }, new { N = "429193145971581177914583469033399200662606866446029372294672301157227150421862792290402791509929570821897885142187010065453654149138187140361755831291841446", K = 1761909288UL, Expected = 667444270UL }, new { N = "327359140099607047977139572877412170971644312048700770518788726268652617533272652316673265", K = 415844594UL, Expected = 143778743UL }, new { N = "8281805349519314623603631968539749824247730270735863150565984680986949037", K = 1422930085UL, Expected = 1184658807UL }, }; foreach (var input in testData) { var actual = BigMath.Modulo(input.N, input.K); Assert.AreEqual(input.Expected, actual); } } } }