Source code for Ranger.test.src.Range.RangeTest

import unittest
from Ranger.src.Range.Range import Range

debug = False

[docs]class RangeTest(unittest.TestCase): """ Unit Tests for Range.py """
[docs] def test_closed(self): if debug: print("Testing closed") # Floats floatRange = Range.closed(2.,5.) self.assertFalse(floatRange.contains(1.99)) self.assertTrue(floatRange.contains(2.)) self.assertTrue(floatRange.contains(3.)) self.assertTrue(floatRange.contains(5.)) self.assertFalse(floatRange.contains(5.01)) # Integers intRange = Range.closed(2,5) self.assertTrue(intRange.contains(2)) self.assertFalse(intRange.contains(1)) # Letters letterRange = Range.closed('b','e') self.assertFalse(letterRange.contains('a')) self.assertTrue(letterRange.contains('b')) self.assertTrue(letterRange.contains('c')) self.assertTrue(letterRange.contains('e')) self.assertFalse(letterRange.contains('f'))
[docs] def test_closedOpen(self): if debug: print("Testing closedOpen") # Floats floatRange = Range.closedOpen(2.,5.) self.assertFalse(floatRange.contains(1.99)) self.assertTrue(floatRange.contains(2.)) self.assertTrue(floatRange.contains(3.)) self.assertFalse(floatRange.contains(5.)) self.assertFalse(floatRange.contains(5.01)) # Letters letterRange = Range.closedOpen('b','e') self.assertFalse(letterRange.contains('a')) self.assertTrue(letterRange.contains('b')) self.assertTrue(letterRange.contains('c')) self.assertFalse(letterRange.contains('e')) self.assertFalse(letterRange.contains('f'))
[docs] def test_openClosed(self): if debug: print("Testing openClosed") # Floats floatRange = Range.openClosed(2.,5.) self.assertFalse(floatRange.contains(1.99)) self.assertFalse(floatRange.contains(2.)) self.assertTrue(floatRange.contains(3.)) self.assertTrue(floatRange.contains(5.)) self.assertFalse(floatRange.contains(5.01)) # Letters letterRange = Range.openClosed('b','e') self.assertFalse(letterRange.contains('a')) self.assertFalse(letterRange.contains('b')) self.assertTrue(letterRange.contains('c')) self.assertTrue(letterRange.contains('e')) self.assertFalse(letterRange.contains('f'))
[docs] def test_open(self): if debug: print("Testing open") # Floats floatRange = Range.open(2.,5.) self.assertFalse(floatRange.contains(1.99)) self.assertFalse(floatRange.contains(2.)) self.assertTrue(floatRange.contains(3.)) self.assertFalse(floatRange.contains(5.)) self.assertFalse(floatRange.contains(5.01)) with self.assertRaises(TypeError): Range.open(3.,3.) # Letters letterRange = Range.open('b','e') self.assertFalse(letterRange.contains('a')) self.assertFalse(letterRange.contains('b')) self.assertTrue(letterRange.contains('c')) self.assertFalse(letterRange.contains('e')) self.assertFalse(letterRange.contains('f')) with self.assertRaises(TypeError): Range.open('b','b')
[docs] def test_lessThan(self): if debug: print("Testing lessThan") # Floats floatRange = Range.lessThan(5.) self.assertTrue(floatRange.contains(1.99)) self.assertTrue(floatRange.contains(2.)) self.assertTrue(floatRange.contains(3.)) self.assertFalse(floatRange.contains(5.)) self.assertFalse(floatRange.contains(5.01)) # Letters letterRange = Range.lessThan('e') self.assertTrue(letterRange.contains('a')) self.assertTrue(letterRange.contains('b')) self.assertTrue(letterRange.contains('c')) self.assertFalse(letterRange.contains('e')) self.assertFalse(letterRange.contains('f'))
[docs] def test_atMost(self): if debug: print("Testing atMost") # Floats floatRange = Range.atMost(5.) self.assertTrue(floatRange.contains(1.99)) self.assertTrue(floatRange.contains(2.)) self.assertTrue(floatRange.contains(3.)) self.assertTrue(floatRange.contains(5.)) self.assertFalse(floatRange.contains(5.01)) # Letters letterRange = Range.atMost('e') self.assertTrue(letterRange.contains('a')) self.assertTrue(letterRange.contains('b')) self.assertTrue(letterRange.contains('c')) self.assertTrue(letterRange.contains('e')) self.assertFalse(letterRange.contains('f'))
[docs] def test_greaterThan(self): if debug: print("Testing greaterThan") # Floats floatRange = Range.greaterThan(5.) self.assertFalse(floatRange.contains(1.99)) self.assertFalse(floatRange.contains(2.)) self.assertFalse(floatRange.contains(3.)) self.assertFalse(floatRange.contains(5.)) self.assertTrue(floatRange.contains(5.01)) # Letters letterRange = Range.greaterThan('e') self.assertFalse(letterRange.contains('a')) self.assertFalse(letterRange.contains('b')) self.assertFalse(letterRange.contains('c')) self.assertFalse(letterRange.contains('e')) self.assertTrue(letterRange.contains('f'))
[docs] def test_atLeast(self): if debug: print("Testing atLeast") # Floats floatRange = Range.atLeast(5.) self.assertFalse(floatRange.contains(1.99)) self.assertFalse(floatRange.contains(2.)) self.assertFalse(floatRange.contains(3.)) self.assertTrue(floatRange.contains(5.)) self.assertTrue(floatRange.contains(5.01)) # Letters letterRange = Range.atLeast('e') self.assertFalse(letterRange.contains('a')) self.assertFalse(letterRange.contains('b')) self.assertFalse(letterRange.contains('c')) self.assertTrue(letterRange.contains('e')) self.assertTrue(letterRange.contains('f'))
[docs] def test_hasLowerBound(self): if debug: print("Testing hasLowerBound") self.assertTrue(Range.atLeast(5.).hasLowerBound()) self.assertFalse(Range.atMost(5.).hasLowerBound()) self.assertTrue(Range.closed(2.,5.).hasLowerBound())
[docs] def test_hasUpperBound(self): if debug: print("Testing hasUpperBound") self.assertFalse(Range.atLeast(5.).hasUpperBound()) self.assertTrue(Range.atMost(5.).hasUpperBound()) self.assertTrue(Range.closed(2.,5.).hasUpperBound())
[docs] def test_lowerEndpoint(self): if debug: print("Testing lowerEndpoint") with self.assertRaises(TypeError): Range.atMost(5.).lowerEndpoint() self.assertEqual(Range.atLeast(5.).lowerEndpoint(),5.) self.assertEqual(Range.closed(5.,10.).lowerEndpoint(),5.)
[docs] def test_upperEndpoint(self): if debug: print("Testing upperEndpoint") with self.assertRaises(TypeError): Range.atLeast(5.).upperEndpoint() self.assertEqual(Range.atMost(5.).upperEndpoint(),5.) self.assertEqual(Range.closed(5.,10.).upperEndpoint(),10.)
[docs] def test_isLowerBoundClosed(self): if debug: print("Testing isLowerBoundClosed") with self.assertRaises(TypeError): Range.atMost(5.).isLowerBoundClosed() self.assertTrue(Range.closedOpen(5.,10.).isLowerBoundClosed()) self.assertFalse(Range.openClosed(5.,10.).isLowerBoundClosed())
[docs] def test_isUpperBoundClosed(self): if debug: print("Testing isUpperBoundClosed") with self.assertRaises(TypeError): Range.atLeast(5.).isUpperBoundClosed() self.assertFalse(Range.closedOpen(5.,10.).isUpperBoundClosed()) self.assertTrue(Range.openClosed(5.,10.).isUpperBoundClosed())
[docs] def test_isEmpty(self): if debug: print("Testing isEmpty") self.assertTrue(Range.closedOpen(3.,3.).isEmpty()) self.assertTrue(Range.openClosed(3.,3.).isEmpty()) self.assertFalse(Range.openClosed(3.,3.001).isEmpty())
[docs] def test_containsAll(self): if debug: print("Testing containsAll") self.assertTrue(Range.openClosed(3.,5.).containsAll([4.,4.5,5.])) self.assertFalse(Range.closedOpen(3.,5.).containsAll([4.,4.5,5.])) self.assertFalse(Range.closedOpen(3.,5.).containsAll([3.,4.,5.])) self.assertFalse(Range.closedOpen(3.,5.).containsAll([2.,4.,5.]))
[docs] def test_encloses(self): if debug: print("Testing encloses") range1 = Range.closed(3.,6.) range2 = Range.closed(4.,5.) self.assertTrue(range1.encloses(range2)) range1 = Range.open(3.,6.) range2 = Range.open(3.,6.) self.assertTrue(range1.encloses(range2)) range2 = Range.closed(4.,4.) self.assertTrue(range1.encloses(range2)) range1 = Range.openClosed(3.,6.) range2 = Range.closed(3.,6.) self.assertFalse(range1.encloses(range2)) self.assertTrue(range2.encloses(range1)) range1 = Range.closed(4.,5.) range2 = Range.open(3.,6.) self.assertFalse(range1.encloses(range2)) self.assertTrue(range2.encloses(range1))
[docs] def test_isConnected(self): if debug: print("Testing isConnected") range1 = Range.closed(2.,4.) range2 = Range.closed(5.,7.) self.assertFalse(range1.isConnected(range2)) range2 = Range.closed(3.,5.) self.assertTrue(range1.isConnected(range2)) range2 = Range.closed(4.,6.) self.assertTrue(range1.isConnected(range2))
[docs] def test_intersection(self): if debug: print("Testing intersection") range1 = Range.closed(1.,5.) range2 = Range.closed(3.,7.) self.assertEqual(range1.intersection(range2), Range.closed(3.,5.)) range2 = Range.closed(5.,7.) self.assertEqual(range1.intersection(range2), Range.closed(5.,5.)) range2 = Range.closed(6.,7.) with self.assertRaises(ValueError): range1.intersection(range2)
[docs] def test_span(self): if debug: print("Testing span") range1 = Range.closed(1.,3.) range2 = Range.closed(5.,7.) self.assertEqual(range1.span(range2), Range.closed(1.,7.)) range2 = Range.closed(2.,5.) self.assertEqual(range1.span(range2), Range.closed(1.,5.))
[docs] def test_getDistanceFromPoint(self): if debug: print("Testing getDistanceFromPoint") range1 = Range.closed(1.,3.) self.assertAlmostEqual(range1.getDistanceFromPoint(1.),0.) self.assertAlmostEqual(range1.getDistanceFromPoint(2.),0.) self.assertAlmostEqual(range1.getDistanceFromPoint(3.),0.) self.assertAlmostEqual(range1.getDistanceFromPoint(100.),97.) self.assertAlmostEqual(range1.getDistanceFromPoint(0.99),0.01) range1 = Range.openClosed(1.,3.) with self.assertRaises(TypeError): range1.getDistanceFromPoint(0.99)
[docs] def test_getDistanceFromRange(self): if debug: print("Testing getDistanceFromRange") range1 = Range.closed(1.,3.) self.assertAlmostEqual(range1.getDistanceFromRange(Range.closed(5.,7.)),2.) self.assertAlmostEqual(range1.getDistanceFromRange(Range.closed(-1.,0.)),1.) self.assertAlmostEqual(range1.getDistanceFromRange(Range.closed(-5.,10.)),0.) self.assertAlmostEqual(range1.getDistanceFromRange(Range.closed(-5.,2.)),0.) self.assertAlmostEqual(range1.getDistanceFromRange(Range.closed(2.,10.)),0.) self.assertAlmostEqual(range1.getDistanceFromRange(Range.closed(1.5,2.1)),0.) with self.assertRaises(TypeError): range1.getDistanceFromRange(Range.closedOpen(1.5,2.1))
if __name__ == "__main__": debug = True unittest.main(exit = False)