Esempio n. 1
0
def test_and(aggregator):
    construction = ((aggregator.centre == mock.Gaussian) & (aggregator.centre.x == 0))
    assert construction == q.Q(
        "centre",
        q.And(
            q.T(mock.Gaussian),
            q.Q(
                "x",
                q.V(
                    "=", 0
                )
            )
        )
    )
Esempio n. 2
0
    def test_complicated(self, less_than, greater_than):
        first = q.Q("a", q.Q("b", q.And(q.Q("c", less_than), greater_than)))

        second = q.Q("a", q.Q("b", q.Q("c", greater_than)))

        combined = q.Q(
            "a",
            q.Q("b",
                q.And(q.Q("c", q.And(less_than, greater_than)), greater_than)))

        assert first & second == combined
Esempio n. 3
0
    def test_with_string(self):
        query = q.Q("a", q.SV("=", 'value'))

        assert query.query == ("SELECT parent_id "
                               "FROM object AS o "
                               "JOIN string_value AS sv "
                               "ON o.id = sv.id "
                               "WHERE (o.name = 'a' "
                               "AND sv.value = 'value')")
Esempio n. 4
0
    def test_with_value(self):
        query = q.Q("a", q.V("=", 1))

        assert query.query == ("SELECT parent_id "
                               "FROM object AS o "
                               "JOIN value AS v "
                               "ON o.id = v.id "
                               "WHERE (o.name = 'a' "
                               "AND v.value = 1)")
Esempio n. 5
0
    def for_name(name: str) -> q.Q:
        """
        Create a query for fits based on the name of a
        top level instance attribute

        Parameters
        ----------
        name
            The name of the attribute. e.g. galaxies

        Returns
        -------
        A query generating object
        """
        return q.Q(name)
Esempio n. 6
0
def test_second():
    assert q.Q("a") & q.Q("a", q.Q("b")) == q.Q("a", q.Q("b"))
Esempio n. 7
0
def test_simple(aggregator):
    assert aggregator.centre == q.Q("centre")
Esempio n. 8
0
def make_second_level(less_than, greater_than):
    return q.Q("a", q.And(less_than, q.Q('b', greater_than)))
Esempio n. 9
0
def test_trivial():
    assert q.Q("a") & q.Q("a") == q.Q("a")
Esempio n. 10
0
def test_with_string(aggregator):
    assert (aggregator.centre == "centre") == q.Q("centre", q.SV("=", "centre"))
Esempio n. 11
0
def test_less_than(aggregator):
    assert (aggregator.centre < 1) == q.Q("centre", q.V("<", 1))
Esempio n. 12
0
def test_less_than(aggregator):
    assert (aggregator.model.centre < 1).query == q.Q("centre", q.V("<",
                                                                    1)).query
Esempio n. 13
0
def test_third_level(aggregator):
    assert (aggregator.lens.centre.x == 1) == q.Q("lens", q.Q("centre", q.Q("x", q.V("=", 1))))
Esempio n. 14
0
def test_with_string(aggregator):
    assert (aggregator.model.centre == "centre").query == q.Q(
        "centre", q.SV("=", "centre")).query
Esempio n. 15
0
def test_greater_than(aggregator):
    assert (aggregator.model.centre > 1).query == q.Q("centre", q.V(">",
                                                                    1)).query
Esempio n. 16
0
def test_simple(aggregator):
    assert aggregator.model.centre.query == q.Q("centre").query
Esempio n. 17
0
def test_with_type(aggregator):
    assert (aggregator.model.centre == af.Gaussian).query == q.Q(
        "centre", q.T(af.Gaussian)).query
Esempio n. 18
0
def test_with_value(aggregator):
    assert (aggregator.model.centre == 1).query == q.Q("centre", q.V("=",
                                                                     1)).query
Esempio n. 19
0
def test_with_value(aggregator):
    assert (aggregator.centre == 1) == q.Q("centre", q.V("=", 1))
Esempio n. 20
0
def test_less_than_equals(aggregator):
    assert (aggregator.model.centre <= 1).query == q.Q("centre", q.V("<=",
                                                                     1)).query
Esempio n. 21
0
def test_second_level(aggregator):
    assert (aggregator.lens.centre == 1) == q.Q("lens", q.Q("centre", q.V("=", 1)))
Esempio n. 22
0
def test_and(aggregator):
    construction = ((aggregator.model.centre == af.Gaussian) &
                    (aggregator.model.centre.x == 0))
    assert construction.query == q.Q(
        "centre", q.And(q.T(af.Gaussian), q.Q("x", q.V("=", 0)))).query
Esempio n. 23
0
def test_with_type(aggregator):
    assert (aggregator.centre == mock.Gaussian) == q.Q("centre", q.T(mock.Gaussian))
Esempio n. 24
0
def test_greater_than_equals(aggregator):
    assert (aggregator.centre >= 1) == q.Q("centre", q.V(">=", 1))
Esempio n. 25
0
def test_greater_than(aggregator):
    assert (aggregator.centre > 1) == q.Q("centre", q.V(">", 1))
Esempio n. 26
0
def make_simple_and(less_than, greater_than):
    return q.Q("a", q.And(less_than, greater_than))
Esempio n. 27
0
def test_less_than_equals(aggregator):
    assert (aggregator.centre <= 1) == q.Q("centre", q.V("<=", 1))
Esempio n. 28
0
def make_simple_or(less_than, greater_than):
    return q.Q("a", q.Or(less_than, greater_than))
Esempio n. 29
0
def test_and_commutativity():
    a_and_b = q.And(q.Q("a"), q.Q("b"))
    combined = a_and_b & q.Q("c")

    assert combined == q.And(q.Q("a"), q.Q("b"), q.Q("c"))
    assert len(combined.conditions) == 3
Esempio n. 30
0
def test_single_argument():
    assert isinstance(q.And(q.Q("a")), q.Q)