libftdi Archives

Subject: test/baudrate.cpp: Add testcases for the rounding border cases

From: Uwe Bonnes <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Tue, 6 Sep 2011 14:10:06 +0200
-- 
Uwe Bonnes                bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From 77c4cf3b129f7d3b63c772300e26e852d2f0ff9c Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 6 Sep 2011 14:00:40 +0200
Subject: test/baudrate.cpp: Add testcases for the rounding border cases

---
 test/baudrate.cpp |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/test/baudrate.cpp b/test/baudrate.cpp
index b7d0282..8bd04eb 100644
--- a/test/baudrate.cpp
+++ b/test/baudrate.cpp
@@ -19,6 +19,7 @@
 #include <boost/foreach.hpp>
 #include <vector>
 #include <map>
+#include <math.h>
 
 using namespace std;
 
@@ -181,6 +182,23 @@ BOOST_AUTO_TEST_CASE(TypeBMFixedBaudrates)
     baudrates[2000000] = calc_result(2000000, 1, 0, 48);
     baudrates[3000000] = calc_result(3000000, 0, 0, 48);
 
+    baudrates[(3000000*16/(2*16+15))-1] = calc_result(round(3000000/3.000), 3, 
0, 48);
+    baudrates[ 3000000*16/(2*16+15)   ] = calc_result(round(3000000/3.000), 3, 
0, 48);
+    baudrates[(3000000*16/(2*16+15))+1] = calc_result(round(3000000/2.875), 2, 
7, 48);
+    baudrates[ 3000000*16/(2*16+13)   ] = calc_result(round(3000000/2.875), 2, 
7, 48);
+    baudrates[(3000000*16/(2*16+13))+1] = calc_result(round(3000000/2.750), 2, 
6, 48);
+    baudrates[ 3000000*16/(2*16+11)   ] = calc_result(round(3000000/2.750), 2, 
6, 48);
+    baudrates[(3000000*16/(2*16+11))+1] = calc_result(round(3000000/2.625), 2, 
5, 48);
+    baudrates[ 3000000*16/(2*16+ 9)   ] = calc_result(round(3000000/2.625), 2, 
5, 48);
+    baudrates[(3000000*16/(2*16+ 9))+1] = calc_result(round(3000000/2.500), 2, 
1, 48);
+    baudrates[ 3000000*16/(2*16+ 7)   ] = calc_result(round(3000000/2.500), 2, 
1, 48);
+    baudrates[(3000000*16/(2*16+ 7))+1] = calc_result(round(3000000/2.375), 2, 
4, 48);
+    baudrates[ 3000000*16/(2*16+ 5)   ] = calc_result(round(3000000/2.375), 2, 
4, 48);
+    baudrates[(3000000*16/(2*16+ 5))+1] = calc_result(round(3000000/2.250), 2, 
2, 48);
+    baudrates[ 3000000*16/(2*16+ 3)   ] = calc_result(round(3000000/2.250), 2, 
2, 48);
+    baudrates[(3000000*16/(2*16+ 3))+1] = calc_result(round(3000000/2.125), 2, 
3, 48);
+    baudrates[ 3000000*16/(2*16+ 1)   ] = calc_result(round(3000000/2.125), 2, 
3, 48);
+    baudrates[(3000000*16/(2*16+ 1))+1] = calc_result(round(3000000/2.000), 2, 
0, 48);
     BOOST_FOREACH(const enum ftdi_chip_type &test_chip_type, test_types)
     {
         ftdi->type = test_chip_type;
@@ -198,6 +216,7 @@ BOOST_AUTO_TEST_CASE(TypeHFixedBaudrates)
 
     map<int, calc_result> baudrates;
     baudrates[183] = calc_result(183, 16383, 7, 48);
+    baudrates[184] = calc_result(184, 16304, 4, 48);
     baudrates[300] = calc_result(300, 10000, 0, 48);
     baudrates[600] = calc_result(600,  5000, 0, 48);
     baudrates[1200] = calc_result(1200, 10000, 0, 120);
@@ -218,6 +237,24 @@ BOOST_AUTO_TEST_CASE(TypeHFixedBaudrates)
     baudrates[8000000] = calc_result(8000000, 1, 0, 120);
     baudrates[12000000] = calc_result(12000000, 0, 0, 120);
 
+    baudrates[(12000000*16/(2*16+15))-1] = calc_result(round(12000000/3.000), 
3, 0, 120);
+    baudrates[ 12000000*16/(2*16+15)   ] = calc_result(round(12000000/3.000), 
3, 0, 120);
+    baudrates[(12000000*16/(2*16+15))+1] = calc_result(round(12000000/2.875), 
2, 7, 120);
+    baudrates[ 12000000*16/(2*16+13)   ] = calc_result(round(12000000/2.875), 
2, 7, 120);
+    baudrates[(12000000*16/(2*16+13))+1] = calc_result(round(12000000/2.750), 
2, 6, 120);
+    baudrates[ 12000000*16/(2*16+11)   ] = calc_result(round(12000000/2.750), 
2, 6, 120);
+    baudrates[(12000000*16/(2*16+11))+1] = calc_result(round(12000000/2.625), 
2, 5, 120);
+    baudrates[ 12000000*16/(2*16+ 9)   ] = calc_result(round(12000000/2.625), 
2, 5, 120);
+    baudrates[(12000000*16/(2*16+ 9))+1] = calc_result(round(12000000/2.500), 
2, 1, 120);
+    baudrates[ 12000000*16/(2*16+ 7)   ] = calc_result(round(12000000/2.500), 
2, 1, 120);
+    baudrates[(12000000*16/(2*16+ 7))+1] = calc_result(round(12000000/2.375), 
2, 4, 120);
+    baudrates[ 12000000*16/(2*16+ 5)   ] = calc_result(round(12000000/2.375), 
2, 4, 120);
+    baudrates[(12000000*16/(2*16+ 5))+1] = calc_result(round(12000000/2.250), 
2, 2, 120);
+    baudrates[ 12000000*16/(2*16+ 3)   ] = calc_result(round(12000000/2.250), 
2, 2, 120);
+    baudrates[(12000000*16/(2*16+ 3))+1] = calc_result(round(12000000/2.125), 
2, 3, 120);
+    baudrates[ 12000000*16/(2*16+ 1)   ] = calc_result(round(12000000/2.125), 
2, 3, 120);
+    baudrates[(12000000*16/(2*16+ 1))+1] = calc_result(round(12000000/2.000), 
2, 0, 120);
+
     BOOST_FOREACH(const enum ftdi_chip_type &test_chip_type, test_types)
     {
         ftdi->type = test_chip_type;
-- 
1.7.3.4


--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread
  • test/baudrate.cpp: Add testcases for the rounding border cases, Uwe Bonnes <=