Skip to content

Commit c9c860a

Browse files
committed
Move division tests to impl_ops_div.rs
1 parent e550656 commit c9c860a

File tree

2 files changed

+68
-62
lines changed

2 files changed

+68
-62
lines changed

src/impl_ops_div.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,71 @@ impl<'a, 'b> Div<&'b BigDecimal> for &'a BigDecimal {
8686
return impl_division(num_int.clone(), den_int, scale, max_precision);
8787
}
8888
}
89+
90+
91+
#[cfg(test)]
92+
mod test {
93+
use super::*;
94+
95+
#[test]
96+
fn test_div() {
97+
let vals = vec![
98+
("0", "1", "0"),
99+
("0", "10", "0"),
100+
("2", "1", "2"),
101+
("2e1", "1", "2e1"),
102+
("10", "10", "1"),
103+
("100", "10.0", "1e1"),
104+
("20.0", "200", ".1"),
105+
("4", "2", "2.0"),
106+
("15", "3", "5.0"),
107+
("1", "2", "0.5"),
108+
("1", "2e-2", "5e1"),
109+
("1", "0.2", "5"),
110+
("1.0", "0.02", "50"),
111+
("1", "0.020", "5e1"),
112+
("5.0", "4.00", "1.25"),
113+
("5.0", "4.000", "1.25"),
114+
("5", "4.000", "1.25"),
115+
("5", "4", "125e-2"),
116+
("100", "5", "20"),
117+
("-50", "5", "-10"),
118+
("200", "-5", "-40."),
119+
("1", "3", ".3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333"),
120+
("-2", "-3", ".6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667"),
121+
("-12.34", "1.233", "-10.00811030008110300081103000811030008110300081103000811030008110300081103000811030008110300081103001"),
122+
("125348", "352.2283", "355.8714617763535752237966114591019517738921035021887792661748076460636467881768727839301952739175132"),
123+
];
124+
125+
for &(x, y, z) in vals.iter() {
126+
127+
let a = BigDecimal::from_str(x).unwrap();
128+
let b = BigDecimal::from_str(y).unwrap();
129+
let c = BigDecimal::from_str(z).unwrap();
130+
131+
assert_eq!(a.clone() / b.clone(), c);
132+
assert_eq!(a.clone() / &b, c);
133+
assert_eq!(&a / b.clone(), c);
134+
assert_eq!(&a / &b, c);
135+
// assert_eq!(q.scale, c.scale);
136+
137+
// let mut q = a;
138+
// q /= b;
139+
// assert_eq!(q, c);
140+
}
141+
}
142+
143+
#[test]
144+
#[should_panic(expected = "Division by zero")]
145+
fn test_division_by_zero_panics() {
146+
let x = BigDecimal::from_str("3.14").unwrap();
147+
let _r = x / 0;
148+
}
149+
150+
#[test]
151+
#[should_panic(expected = "Division by zero")]
152+
fn test_division_by_zero_panics_v2() {
153+
let x = BigDecimal::from_str("3.14").unwrap();
154+
let _r = x / BigDecimal::zero();
155+
}
156+
}

src/lib.rs

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,68 +1837,6 @@ mod bigdecimal_tests {
18371837
assert!(BigDecimal::try_from(f64::NAN).is_err());
18381838
}
18391839

1840-
#[test]
1841-
fn test_div() {
1842-
let vals = vec![
1843-
("0", "1", "0"),
1844-
("0", "10", "0"),
1845-
("2", "1", "2"),
1846-
("2e1", "1", "2e1"),
1847-
("10", "10", "1"),
1848-
("100", "10.0", "1e1"),
1849-
("20.0", "200", ".1"),
1850-
("4", "2", "2.0"),
1851-
("15", "3", "5.0"),
1852-
("1", "2", "0.5"),
1853-
("1", "2e-2", "5e1"),
1854-
("1", "0.2", "5"),
1855-
("1.0", "0.02", "50"),
1856-
("1", "0.020", "5e1"),
1857-
("5.0", "4.00", "1.25"),
1858-
("5.0", "4.000", "1.25"),
1859-
("5", "4.000", "1.25"),
1860-
("5", "4", "125e-2"),
1861-
("100", "5", "20"),
1862-
("-50", "5", "-10"),
1863-
("200", "-5", "-40."),
1864-
("1", "3", ".3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333"),
1865-
("-2", "-3", ".6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667"),
1866-
("-12.34", "1.233", "-10.00811030008110300081103000811030008110300081103000811030008110300081103000811030008110300081103001"),
1867-
("125348", "352.2283", "355.8714617763535752237966114591019517738921035021887792661748076460636467881768727839301952739175132"),
1868-
];
1869-
1870-
for &(x, y, z) in vals.iter() {
1871-
1872-
let a = BigDecimal::from_str(x).unwrap();
1873-
let b = BigDecimal::from_str(y).unwrap();
1874-
let c = BigDecimal::from_str(z).unwrap();
1875-
1876-
assert_eq!(a.clone() / b.clone(), c);
1877-
assert_eq!(a.clone() / &b, c);
1878-
assert_eq!(&a / b.clone(), c);
1879-
assert_eq!(&a / &b, c);
1880-
// assert_eq!(q.scale, c.scale);
1881-
1882-
// let mut q = a;
1883-
// q /= b;
1884-
// assert_eq!(q, c);
1885-
}
1886-
}
1887-
1888-
#[test]
1889-
#[should_panic(expected = "Division by zero")]
1890-
fn test_division_by_zero_panics() {
1891-
let x = BigDecimal::from_str("3.14").unwrap();
1892-
let _r = x / 0;
1893-
}
1894-
1895-
#[test]
1896-
#[should_panic(expected = "Division by zero")]
1897-
fn test_division_by_zero_panics_v2() {
1898-
let x = BigDecimal::from_str("3.14").unwrap();
1899-
let _r = x / BigDecimal::zero();
1900-
}
1901-
19021840
#[test]
19031841
fn test_rem() {
19041842
let vals = vec![

0 commit comments

Comments
 (0)