Esempio n. 1
0
    def test_add(self):

        s = Solution(**self.d)

        s2 = Solution(components=[{'classification':{'CHEBI':'1234'},
                                   'concentration':2 * ureg.micromolar}],
                      container={"ctype":"micro-1.5"},
                      volume=1*ureg.milliliter)

        s.add(s2, 10 * ureg.microliter)
        assert (s.components[0]['concentration'] - 1.01*ureg.micromolar) < 0.001*ureg.micromolar

        s3 = Solution(volume=1*ureg.liter)
        s3.add(s2, 10*ureg.microliter)
Esempio n. 2
0
    def test_add(self):

        s = Solution(**self.d)

        s2 = Solution(components=[{
            'classification': {
                'CHEBI': '1234'
            },
            'concentration': 2 * ureg.micromolar
        }],
                      container={"ctype": "micro-1.5"},
                      volume=1 * ureg.milliliter)

        s.add(s2, 10 * ureg.microliter)
        assert (s.components[0]['concentration'] -
                1.01 * ureg.micromolar) < 0.001 * ureg.micromolar

        s3 = Solution(volume=1 * ureg.liter)
        s3.add(s2, 10 * ureg.microliter)
Esempio n. 3
0
    def test_dist(self):
        #A distance measure for comparing solution objects, specifically
        #for use in the non-constraint, component-only portion of solution
        #optimization.

        s1 = Solution(**self.d)
        s2 = Solution(**self.d1)
        s3 = Solution(**self.d2)

        # Coincidence, non-negativity
        assert s1.dist(s2) == 0
        assert s1.dist(s1) == 0
        s1.add(s1, 1*ureg.microliter)
        assert s1.dist(s2) < 0.00001
        s2.add(s3, 1 * ureg.microliter)
        assert s1.dist(s2) > 0

        # Symmetry
        assert (s1.dist(s2) - s2.dist(s1)) < 0.00001

        # Triangle inequality
        s3.add(s1, 10 * ureg.microliter)
        s3.add(s2, 10 * ureg.microliter)
        assert s3.dist(s2) <= s3.dist(s1) + s1.dist(s2)
Esempio n. 4
0
    def test_dist(self):
        #A distance measure for comparing solution objects, specifically
        #for use in the non-constraint, component-only portion of solution
        #optimization.

        s1 = Solution(**self.d)
        s2 = Solution(**self.d1)
        s3 = Solution(**self.d2)

        # Coincidence, non-negativity
        assert s1.dist(s2) == 0
        assert s1.dist(s1) == 0
        s1.add(s1, 1 * ureg.microliter)
        assert s1.dist(s2) < 0.00001
        s2.add(s3, 1 * ureg.microliter)
        assert s1.dist(s2) > 0

        # Symmetry
        assert (s1.dist(s2) - s2.dist(s1)) < 0.00001

        # Triangle inequality
        s3.add(s1, 10 * ureg.microliter)
        s3.add(s2, 10 * ureg.microliter)
        assert s3.dist(s2) <= s3.dist(s1) + s1.dist(s2)