Skip to content

Commit 178677b

Browse files
committed
Move unit tests into source files. Added system tests.
1 parent 44f28bf commit 178677b

24 files changed

+1515
-1463
lines changed

src/acceleration.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,15 @@ impl Acceleration {
5959
}
6060

6161
impl Measurement for Acceleration {
62-
fn get_base_units(&self) -> f64 {
62+
fn as_base_units(&self) -> f64 {
6363
self.meters_per_second_per_second
6464
}
6565

6666
fn from_base_units(units: f64) -> Self {
6767
Self::from_meters_per_second_per_second(units)
6868
}
6969

70-
fn get_base_units_name(&self) -> &'static str {
70+
fn as_base_units_name(&self) -> &'static str {
7171
"m/s\u{00B2}"
7272
}
7373
}
@@ -78,7 +78,7 @@ implement_measurement! { Acceleration }
7878
mod test {
7979

8080
use super::*;
81-
use tests::assert_almost_eq;
81+
use test_utils::assert_almost_eq;
8282
use std::time::Duration;
8383
use speed::Speed;
8484

src/area.rs

Lines changed: 229 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,15 +268,15 @@ impl Area {
268268
}
269269

270270
impl Measurement for Area {
271-
fn get_base_units(&self) -> f64 {
271+
fn as_base_units(&self) -> f64 {
272272
self.square_meters
273273
}
274274

275275
fn from_base_units(units: f64) -> Self {
276276
Self::from_square_meters(units)
277277
}
278278

279-
fn get_base_units_name(&self) -> &'static str {
279+
fn as_base_units_name(&self) -> &'static str {
280280
"m\u{00B2}"
281281
}
282282

@@ -297,3 +297,230 @@ impl Measurement for Area {
297297
}
298298

299299
implement_measurement! { Area }
300+
301+
#[cfg(test)]
302+
mod test {
303+
use area::*;
304+
use test_utils::assert_almost_eq;
305+
306+
#[test]
307+
fn square_meters() {
308+
let i1 = Area::from_square_meters(100.0);
309+
let r1 = i1.as_square_meters();
310+
let i2 = Area::from_square_meters(100.0);
311+
let r2 = i2.as_square_meters();
312+
assert_almost_eq(r1, 100.0);
313+
assert_almost_eq(r2, 100.0);
314+
}
315+
316+
#[test]
317+
fn square_metres() {
318+
let i1 = Area::from_square_meters(100.0);
319+
let r1 = i1.as_square_metres();
320+
let i2 = Area::from_square_metres(100.0);
321+
let r2 = i2.as_square_meters();
322+
assert_almost_eq(r1, 100.0);
323+
assert_almost_eq(r2, 100.0);
324+
}
325+
326+
#[test]
327+
fn square_nanometers() {
328+
let i1 = Area::from_square_meters(100.0);
329+
let r1 = i1.as_square_nanometers();
330+
let i2 = Area::from_square_nanometers(100.0);
331+
let r2 = i2.as_square_meters();
332+
assert_almost_eq(r1, 1e20);
333+
assert_almost_eq(r2, 1e-16);
334+
}
335+
336+
#[test]
337+
fn square_nanometres() {
338+
let i1 = Area::from_square_meters(100.0);
339+
let r1 = i1.as_square_nanometres();
340+
let i2 = Area::from_square_nanometres(100.0);
341+
let r2 = i2.as_square_meters();
342+
assert_almost_eq(r1, 1e20);
343+
assert_almost_eq(r2, 1e-16);
344+
}
345+
346+
#[test]
347+
fn square_micrometers() {
348+
let i1 = Area::from_square_meters(100.0);
349+
let r1 = i1.as_square_micrometers();
350+
let i2 = Area::from_square_micrometers(100.0);
351+
let r2 = i2.as_square_meters();
352+
assert_almost_eq(r1, 1e14);
353+
assert_almost_eq(r2, 1e-10);
354+
}
355+
356+
#[test]
357+
fn square_micrometres() {
358+
let i1 = Area::from_square_meters(100.0);
359+
let r1 = i1.as_square_micrometres();
360+
let i2 = Area::from_square_micrometres(100.0);
361+
let r2 = i2.as_square_meters();
362+
assert_almost_eq(r1, 1e14);
363+
assert_almost_eq(r2, 1e-10);
364+
}
365+
366+
#[test]
367+
fn square_millimeters() {
368+
let i1 = Area::from_square_meters(100.0);
369+
let r1 = i1.as_square_millimeters();
370+
let i2 = Area::from_square_millimeters(100.0);
371+
let r2 = i2.as_square_meters();
372+
assert_almost_eq(r1, 1e8);
373+
assert_almost_eq(r2, 1e-4);
374+
}
375+
376+
#[test]
377+
fn square_millimetres() {
378+
let i1 = Area::from_square_meters(100.0);
379+
let r1 = i1.as_square_millimetres();
380+
let i2 = Area::from_square_millimetres(100.0);
381+
let r2 = i2.as_square_meters();
382+
assert_almost_eq(r1, 1e8);
383+
assert_almost_eq(r2, 1e-4);
384+
}
385+
386+
#[test]
387+
fn square_centimeters() {
388+
let i1 = Area::from_square_meters(100.0);
389+
let r1 = i1.as_square_centimeters();
390+
let i2 = Area::from_square_centimeters(100.0);
391+
let r2 = i2.as_square_meters();
392+
assert_almost_eq(r1, 1e6);
393+
assert_almost_eq(r2, 1e-2);
394+
}
395+
396+
#[test]
397+
fn square_centimetres() {
398+
let i1 = Area::from_square_meters(100.0);
399+
let r1 = i1.as_square_centimetres();
400+
let i2 = Area::from_square_centimetres(100.0);
401+
let r2 = i2.as_square_meters();
402+
assert_almost_eq(r1, 1e6);
403+
assert_almost_eq(r2, 1e-2);
404+
}
405+
406+
#[test]
407+
fn square_decimeters() {
408+
let i1 = Area::from_square_meters(100.0);
409+
let r1 = i1.as_square_decimeters();
410+
let i2 = Area::from_square_decimeters(100.0);
411+
let r2 = i2.as_square_meters();
412+
assert_almost_eq(r1, 1e4);
413+
assert_almost_eq(r2, 1.0);
414+
}
415+
416+
#[test]
417+
fn square_decimetres() {
418+
let i1 = Area::from_square_meters(100.0);
419+
let r1 = i1.as_square_decimetres();
420+
let i2 = Area::from_square_decimetres(100.0);
421+
let r2 = i2.as_square_meters();
422+
assert_almost_eq(r1, 1e4);
423+
assert_almost_eq(r2, 1.0);
424+
}
425+
426+
#[test]
427+
fn square_hectometers() {
428+
let i1 = Area::from_square_meters(100.0);
429+
let r1 = i1.as_square_hectometers();
430+
let i2 = Area::from_square_hectometers(100.0);
431+
let r2 = i2.as_square_meters();
432+
assert_almost_eq(r1, 1e-2);
433+
assert_almost_eq(r2, 1e6);
434+
}
435+
436+
#[test]
437+
fn square_hectometres() {
438+
let i1 = Area::from_square_meters(100.0);
439+
let r1 = i1.as_square_hectometres();
440+
let i2 = Area::from_square_hectometres(100.0);
441+
let r2 = i2.as_square_meters();
442+
assert_almost_eq(r1, 1e-2);
443+
assert_almost_eq(r2, 1e6);
444+
}
445+
446+
#[test]
447+
fn hectares() {
448+
let i1 = Area::from_square_meters(100.0);
449+
let r1 = i1.as_hectares();
450+
let i2 = Area::from_hectares(100.0);
451+
let r2 = i2.as_square_meters();
452+
assert_almost_eq(r1, 1e-2);
453+
assert_almost_eq(r2, 1e6);
454+
}
455+
456+
#[test]
457+
fn square_kilometers() {
458+
let i1 = Area::from_square_meters(100.0);
459+
let r1 = i1.as_square_kilometers();
460+
let i2 = Area::from_square_kilometers(100.0);
461+
let r2 = i2.as_square_meters();
462+
assert_almost_eq(r1, 1e-4);
463+
assert_almost_eq(r2, 1e8);
464+
}
465+
466+
#[test]
467+
fn square_kilometres() {
468+
let i1 = Area::from_square_meters(100.0);
469+
let r1 = i1.as_square_kilometres();
470+
let i2 = Area::from_square_kilometres(100.0);
471+
let r2 = i2.as_square_meters();
472+
assert_almost_eq(r1, 1e-4);
473+
assert_almost_eq(r2, 1e8);
474+
}
475+
476+
#[test]
477+
fn square_inches() {
478+
let i1 = Area::from_square_meters(100.0);
479+
let r1 = i1.as_square_inches();
480+
let i2 = Area::from_square_inches(100.0);
481+
let r2 = i2.as_square_meters();
482+
assert_almost_eq(r1, 155000.0);
483+
assert_almost_eq(r2, 0.06451587097);
484+
}
485+
486+
#[test]
487+
fn square_feet() {
488+
let i1 = Area::from_square_meters(100.0);
489+
let r1 = i1.as_square_feet();
490+
let i2 = Area::from_square_feet(100.0);
491+
let r2 = i2.as_square_meters();
492+
assert_almost_eq(r1, 1076.39);
493+
assert_almost_eq(r2, 9.2902950097728);
494+
}
495+
496+
#[test]
497+
fn square_yards() {
498+
let i1 = Area::from_square_meters(100.0);
499+
let r1 = i1.as_square_yards();
500+
let i2 = Area::from_square_yards(100.0);
501+
let r2 = i2.as_square_meters();
502+
assert_almost_eq(r1, 119.599);
503+
assert_almost_eq(r2, 83.612732764187);
504+
}
505+
506+
#[test]
507+
fn acres() {
508+
let i1 = Area::from_square_meters(100.0);
509+
let r1 = i1.as_acres();
510+
let i2 = Area::from_acres(100.0);
511+
let r2 = i2.as_square_meters();
512+
assert_almost_eq(r1, 0.0247105);
513+
assert_almost_eq(r2, 404686.0);
514+
}
515+
516+
#[test]
517+
fn square_miles() {
518+
let i1 = Area::from_square_meters(100.0);
519+
let r1 = i1.as_square_miles();
520+
let i2 = Area::from_square_miles(100.0);
521+
let r2 = i2.as_square_meters();
522+
assert_almost_eq(r1, 3.86102e-5);
523+
assert_almost_eq(r2, 258998704.7);
524+
}
525+
526+
}

0 commit comments

Comments
 (0)