def generate(self, pInputPasswordList, pResult):
		lclDifferenceMapper = BasicDifferenceMapper()
		lclHashMap = DLPHash()
		lclConverter = BasicStringIntConverter()
		lclStringJoinerAndCombiner = BasicStringJoinerAndCombiner() 
		
		lclHashedValue = lclHashMap.compute(lclStringJoinerAndCombiner.joinAndCombine(pInputPasswordList))
		lclDifferenceMapper.defineMap(lclHashedValue, lclConverter.toInt(pResult))
		lclValidationCode = lclHashMap.compute(lclHashedValue) 
		return SimpleKey(lclValidationCode, lclDifferenceMapper, lclHashMap)
    def sample(self, pPasswordList, pIntermediate):
        lclStringIntConverter = BasicStringIntConverter()
        lclStringJoiner = BasicStringJoiner(lclStringIntConverter)
        lclCombiner = BasicCombiner()
        lclJoinerAndCombiner = BasicStringJoinerAndCombiner(lclStringJoiner, lclCombiner)

        lclCombinedInput = lclJoinerAndCombiner.joinAndCombine(pPasswordList)

        lclDifferenceMapper = BasicDifferenceMapper()
        lclDifferenceMapper.defineMap(lclCombinedInput, pIntermediate)

        lclMapInputToIntermediate = BasicMapInputToIntermediate(lclDifferenceMapper, lclJoinerAndCombiner)
        lclMapInputToIntermediate.defineMap(pPasswordList, pIntermediate)

        self.assertEqual(lclMapInputToIntermediate.compute(pPasswordList), pIntermediate)
	def test_FullFunctionality(self):
		print("Running FullFunctionalityTest on TestDifferenceMapper")
		lclMap = BasicDifferenceMapper()
		lclMap.defineMap(3, 11)
		self.assertEquals(lclMap.compute(3), 11)