def METHOD_NAME(self):
    from GangaCore.GPI import DiracFile, LHCbDataset, Job, LocalFile
    # test constructors/setters
    ds = LHCbDataset(['lfn:a', 'pfn:b'])
    assert len(ds) == 2
    print((ds[0]))
    assert isinstance(ds[0], DiracFile)
    assert isinstance(ds[1], LocalFile)
    ds = LHCbDataset()
    ds.files = ['lfn:a', 'pfn:b']
    assert isinstance(ds[0], DiracFile)
    assert isinstance(ds[1], LocalFile)
    assert ds.getFullFileNames() == ['LFN:a', 'PFN:b']
    ds.files.append('lfn:c')
    assert isinstance(ds[-1], DiracFile)
    # check job assignments
    j = Job()
    j.inputdata = ['lfn:a', 'pfn:b']
    assert isinstance(j.inputdata, LHCbDataset)
    j.outputfiles = ['a', DiracFile('b')]
    assert isinstance(j.outputfiles[0], LocalFile)
    print((type(j.outputfiles[1])))
    assert isinstance(j.outputfiles[1], DiracFile)
    # check the LHCbDataset functions:
    assert ds.getLFNs() == ['a', 'c']
    assert ds.getPFNs() == ['b']
    ds2 = LHCbDataset(['lfn:a', 'lfn:d'])
    ds.extend(ds2, True)
    assert len(ds) == 4
    # check the useful difference functions etc
    assert sorted(ds.difference(ds2).getFileNames()) == ['b', 'c']
    assert sorted(ds.symmetricDifference(ds2).getFileNames()) == ['b', 'c']
    assert sorted(ds.intersection(ds2).getFileNames()) == ['a', 'd']
    assert sorted(ds.union(ds2).getFileNames()) == ['a', 'b', 'c', 'd']
    # check the file types are preserved
    ds3 = LHCbDataset(['lfn:a'])
    ds4 = LHCbDataset(['pfn:b'])
    assert isinstance(ds3.difference(ds4)[0], DiracFile)
    assert isinstance(ds4.difference(ds3)[0], LocalFile)