def testExpectedCase_absRoll(self):
		#Swap from roll to the abs roll
		self.optsObjRoll.angleType = "abs_roll"
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObjRoll, self.optsObjPitch, self.optsObjAzi])

		#
		expVals = [ [0                  , 0                ,90],
		            [0                  , 0                ,119.88652694042403],
		            [ 70.11483488614456 , 0                ,0],
		            [ 0.23900590074245542, 79.98644481907608,19.686775804346176] ]
		actVals = self.testObj.getValsToBin(self.sparseCalculator)

		self.assertTrue( np.allclose(np.array(expVals), np.array(actVals)) )
	def createTestObjs(self):
		#Create the geometry
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams, lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.coords

		#Create an options object
		self.optsObj = self.initOptsClass(self.binResObj, self.diatomicIndices)

		#Get a sparse matrix populator + populate it
		self.sparseCalculator = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.optsObj])
		self.sparseCalculator.calcMatricesForGeom(self.cellA)

		#Create the test object
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObj])
	def createTestObjs(self):
		#Geom
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams, lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.coords

		#Create opts object
		currArgs = [self.binResObj, self.indicesFrom, self.indicesTo]
		self.optsObj = distrOptObjHelp.CalcHozDistOptions(*currArgs, minDistAToB=self.minDistAToB, minDistVal=self.minDistVal)

		#Get matrix calculator + populate
		self.sparseMatrixObj = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.optsObj])
		self.sparseMatrixObj.calcMatricesForGeom(self.cellA)

		#get binval getter
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObj])
	def createTestObjs(self):
		#Geom
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams, lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.coords

		#Create opts object
		tempBinResObj = None
		self.optsObj = distrOptObjHelp.CountNWithinDistOptions(tempBinResObj, self.distOpts, self.distRanges)

		#Get matrix calculator + populate
		self.sparseMatrixObj = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.optsObj])
		self.sparseMatrixObj.calcMatricesForGeom(self.cellA)

		#get binval getter
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObj])
	def createTestObjs(self):
		#Create the geometry
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams,lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.coords

		#Options object
		currArgs = [self.binResObj, self.fromOxyIndices, self.fromHyIndices, self.toOxyIndices, self.toHyIndices]
		currKwargs = {"acceptor":self.acceptor,"donor":self.donor, "maxOO":self.maxOO, "maxAngle":35}
		self.optsObj = distrOptObjHelp.CountHBondsBetweenWaterGroupsOptions(*currArgs, **currKwargs)

		#Get a sparse matrix populator + populate it
		self.sparseCalculator = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.optsObj])
		self.sparseCalculator.calcMatricesForGeom(self.cellA)

		#Create the test object
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObj])
	def createTestObjs(self):
		#Geom
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams, lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.coords

		#Options objects
		currArgs = [self.rdfBinObj, self.indicesA, self.indicesB]
		self.rdfOptObj = distrOptObjHelp.CalcRdfOptions(*currArgs, minDistAToB=self.minDistAToB, filterBasedOnBins=self.rdfFilterBasedOnBins)
		self.planarOptObj = calcRadImpl.CalcPlanarRdfOptions(self.dudBinResObj, self.indicesA, planeEqn=self.planeEqn)

		#Create sparse matrix populator and populate it
		self.sparseMatrixObj = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.rdfOptObj, self.planarOptObj])
		self.sparseMatrixObj.calcMatricesForGeom(self.cellA)

		#Create the binner object
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.rdfOptObj,self.planarOptObj])
	def createTestObjs(self):
		#Create the geometry
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams, lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.coords

		#Create an options object
		currArgs = [self.binResObj,self.diatomicIndices, self.inpVector]
		currKwargs = {"leftToRight":self.leftToRight}
		self.optsObj = distrOptObjHelp.GetAngleWithGenericVectorForDiatomOpts(*currArgs, **currKwargs)

		#Get a sparse matrix populator + populate it
		self.sparseCalculator = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.optsObj])
		self.sparseCalculator.calcMatricesForGeom(self.cellA)

		#Create the test object
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObj])
	def createTestObjs(self):
		#Sort out geometry
		self.cellA = uCellHelp.UnitCell(lattParams=self.lattParams, lattAngles=self.lattAngles)
		self.cellA.cartCoords = self.cartCoords

		#Sort out options objects
		currArgs = [self.binResObj, self.oxyIndices, self.hyIndices]
		currKwargs = {"checkEdges":False}
		self.optsObjRoll = distrOptObjHelp.WaterOrientationOptions(*currArgs, **currKwargs, angleType="roll")
		self.optsObjPitch = distrOptObjHelp.WaterOrientationOptions(*currArgs, **currKwargs, angleType="pitch")
		self.optsObjAzi = distrOptObjHelp.WaterOrientationOptions(*currArgs, **currKwargs, angleType="azimuth")

		#Get the sparse matrix calculator and populate it
		self.sparseCalculator = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter([self.optsObjRoll, self.optsObjPitch, self.optsObjAzi])
		self.sparseCalculator.calcMatricesForGeom(self.cellA)

		#Get the bin val getter object
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs([self.optsObjRoll, self.optsObjPitch, self.optsObjAzi])
	def testExpectedWithDonorAndAcceptorCounter(self):
		#Remake the objects
		currArgs = [self.binResObj, self.fromOxyIndices, self.fromHyIndices, self.toOxyIndices, self.toHyIndices]
		currKwargs = {"acceptor":False, "donor":True, "maxOO":self.maxOO, "maxAngle":35}
		self.donorOptsObj = distrOptObjHelp.CountHBondsBetweenWaterGroupsOptions(*currArgs, **currKwargs)

		currKwargs = {"acceptor":True, "donor":False, "maxOO":self.maxOO, "maxAngle":35}
		self.acceptorOptsObj = distrOptObjHelp.CountHBondsBetweenWaterGroupsOptions(*currArgs, **currKwargs)

		optsObjs = [self.acceptorOptsObj,self.donorOptsObj]

		#Get a sparse matrix populator + populate it
		self.sparseCalculator = atomComboObjsMapHelp.getSparseMatrixCalculatorFromOptsObjIter(optsObjs)
		self.sparseCalculator.calcMatricesForGeom(self.cellA)

		#Create the test object
		self.testObj = atomComboObjsMapHelp.getMultiDimBinValGetterFromOptsObjs(optsObjs)

		#Figure out expected + test		
		expVals = [ (0,0), (0,2) ]
		actVals = self._runTestFunct()

		for expIter,actIter in it.zip_longest(expVals,actVals):
			[self.assertAlmostEqual(exp,act) for exp,act in it.zip_longest(expIter,actIter)]