Commit 0e8c56f5 authored by Bharath Ramsundar's avatar Bharath Ramsundar
Browse files

Now have failing test case.

parent 51bcb0c1
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
@@ -26,6 +26,51 @@ class TestLoad(TestAPI):
  Test singletask/multitask data loading.
  """

  def test_move_load(self):
    """Test that datasets can be moved and loaded."""
    verbosity = "high"
    current_dir = os.path.dirname(os.path.realpath(__file__))
    feature_dir = os.path.join(self.base_dir, "features")
    moved_feature_dir = os.path.join(self.base_dir, "moved_features")
    samples_dir = os.path.join(self.base_dir, "samples")
    moved_samples_dir = os.path.join(self.base_dir, "moved_samples")
    data_dir = os.path.join(self.base_dir, "data")
    moved_data_dir = os.path.join(self.base_dir, "moved_data")
    dataset_file = os.path.join(
        current_dir, "../../models/tests/example.csv")

    featurizers = [CircularFingerprint(size=1024)]
    tasks = ["log-solubility"]
    featurizer = DataFeaturizer(tasks=tasks,
                                smiles_field="smiles",
                                compound_featurizers=featurizers,
                                verbosity=verbosity)
    featurized_samples = featurizer.featurize(
        dataset_file, feature_dir,
        samples_dir, reload=reload)
    dataset = Dataset(data_dir=data_dir, samples=featurized_samples, 
                      featurizers=featurizers, tasks=tasks,
                      verbosity=verbosity, reload=reload)

    X, y, w, ids = dataset.to_numpy()
    shutil.move(feature_dir, moved_feature_dir)
    shutil.move(samples_dir, moved_samples_dir)
    shutil.move(data_dir, moved_data_dir)

    moved_dataset = Dataset(
        data_dir=moved_data_dir, samples=featurized_samples, 
        featurizers=featurizers, tasks=tasks,
        verbosity=verbosity, reload=reload)

    X_moved, y_moved, w_moved, ids_moved = moved_dataset.to_numpy()

    np.testing.assert_allclose(X, X_moved)
    np.testing.assert_allclose(y, y_moved)
    np.testing.assert_allclose(w, w_moved)
    np.testing.assert_allclose(ids, ids_moved)

    

  def test_multiload(self):
    """Check can re-use featurization for multiple task selections."""
    # Only for debug!
+36 −10
Original line number Diff line number Diff line
@@ -13,25 +13,18 @@ import os
import unittest
import tempfile
import shutil
from deepchem.models.tests import TestAPI
from deepchem.splits import RandomSplitter
from deepchem.splits import ScaffoldSplitter
from deepchem.splits import SpecifiedSplitter
from deepchem.featurizers.featurize import DataFeaturizer
from deepchem.featurizers.fingerprints import CircularFingerprint
from deepchem.featurizers.featurize import FeaturizedSamples

class TestFeaturizedSamples(unittest.TestCase):
class TestFeaturizedSamples(TestAPI):
  """
  Test Featurized Samples class.
  """
  def setUp(self):
    self.current_dir = os.path.dirname(os.path.abspath(__file__))
    self.smiles_field = "smiles"
    self.feature_dir = tempfile.mkdtemp()
    self.samples_dir = tempfile.mkdtemp()
    self.train_dir = tempfile.mkdtemp()
    self.valid_dir = tempfile.mkdtemp()
    self.test_dir = tempfile.mkdtemp()

  def _featurize_train_valid_test_split(self, splittype, input_file, tasks,
                                        frac_train, frac_valid, frac_test):
    # Featurize input
@@ -141,3 +134,36 @@ class TestFeaturizedSamples(unittest.TestCase):
            frac_valid=0, frac_test=.2))
    assert len(train_samples) == 8
    assert len(test_samples) == 2

  def test_samples_move(self):
    """Test that featurized samples can be moved and reloaded."""
    verbosity = "high"
    current_dir = os.path.dirname(os.path.realpath(__file__))
    feature_dir = os.path.join(self.base_dir, "features")
    moved_feature_dir = os.path.join(self.base_dir, "moved_features")
    samples_dir = os.path.join(self.base_dir, "samples")
    moved_samples_dir = os.path.join(self.base_dir, "moved_samples")
    dataset_file = os.path.join(
        current_dir, "../../models/tests/example.csv")

    featurizers = [CircularFingerprint(size=1024)]
    tasks = ["log-solubility"]
    featurizer = DataFeaturizer(tasks=tasks,
                                smiles_field="smiles",
                                compound_featurizers=featurizers,
                                verbosity=verbosity)
    featurized_samples = featurizer.featurize(
        dataset_file, feature_dir,
        samples_dir, reload=reload)
    n_samples = len(featurized_samples)
  
    # Now perform move
    shutil.move(feature_dir, moved_feature_dir)
    shutil.move(samples_dir, moved_samples_dir)

    moved_featurized_samples = FeaturizedSamples(
        samples_dir=moved_samples_dir, featurizers=featurizers,
        reload=True)

    assert len(moved_featurized_samples) == n_samples