From 6e9a5a010f8df4b5b15f80f759b75085dd5d5e63 Mon Sep 17 00:00:00 2001 From: Gabriel Ozouf Date: Tue, 25 Aug 2020 10:30:29 +0200 Subject: [PATCH] [poincare/integer] Add tests on euclidean division This commit also adds tests on mixed fractions. Change-Id: I0fee88eb00febccaa9445230f8f2bbb92cd1ba98 --- poincare/test/integer.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/poincare/test/integer.cpp b/poincare/test/integer.cpp index 0a093c132..f653b887c 100644 --- a/poincare/test/integer.cpp +++ b/poincare/test/integer.cpp @@ -277,3 +277,29 @@ QUIZ_CASE(poincare_integer_serialize) { assert_integer_serializes_to(MaxInteger(), MaxIntegerString()); assert_integer_serializes_to(OverflowedInteger(), Infinity::Name()); } + +// Euclidian Division + +void assert_division_computes_to(int n, int m, const char * div) { + assert_expression_serialize_to(Integer::CreateEuclideanDivision(Integer(n), Integer(m)), div); +} + +QUIZ_CASE(poincare_integer_euclidian_division) { + assert_division_computes_to(47, 8, "47=8×5+7"); + assert_division_computes_to(1, 5, "1=5×0+1"); + assert_division_computes_to(12, 4, "12=4×3+0"); + assert_division_computes_to(-33, 7, "-33=7×(-5)+2"); + assert_division_computes_to(-28, 101, "-28=101×(-1)+73"); + assert_division_computes_to(-40, 2, "-40=2×(-20)+0"); +} + +void assert_mixed_fraction_computes_to(int n, int m, const char * frac) { + assert_expression_serialize_to(Integer::CreateMixedFraction(Integer(n), Integer(m)), frac); +} + +QUIZ_CASE(poincare_integer_mixed_fraction) { + assert_mixed_fraction_computes_to(47, 8, "5+7/8"); + assert_mixed_fraction_computes_to(1, 5, "0+1/5"); + assert_mixed_fraction_computes_to(-33, 7, "-4-5/7"); + assert_mixed_fraction_computes_to(-28, 101, "0-28/101"); +}