memgraph/tck_engine/tests/memgraph_V1/features/functions.feature
Mislav Bradac 53061a0412 Split features in separate files
Reviewers: buda

Reviewed By: buda

Differential Revision: https://phabricator.memgraph.io/D333
2017-05-02 18:47:42 +02:00

376 lines
9.7 KiB
Gherkin

Feature: Functions
Scenario: Sqrt test 01:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (b{x: 7}), (c{x: 5}), (d{x: 'x'})
"""
When executing query:
"""
MATCH (a) RETURN SQRT(a.x) AS n
"""
Then an error should be raised
Scenario: Sqrt test 02:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (b), (c{x: 9}), (d{x: null})
"""
When executing query:
"""
MATCH (a) RETURN SQRT(a.x) AS n
"""
Then the result should be:
| n |
| 1.0 |
| null |
| 3.0 |
| null |
Scenario: ToBoolean test 01:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (b{x: 0}))
"""
When executing query:
"""
MATCH (a) RETURN TOBOOLEAN(a.x) AS n
"""
Then an error should be raised
Scenario: ToBoolean test 02:
Given an empty graph
And having executed
"""
CREATE (a{x: 'TrUe'}), (b{x: 'not bool'}), (c{x: faLsE}), (d{x: null}), (e{x: 'fALse'}), (f{x: tRuE})
"""
When executing query:
"""
MATCH (a) RETURN TOBOOLEAN(a.x) AS n
"""
Then the result should be:
| n |
| true |
| null |
| false |
| null |
| false |
| true |
Scenario: ToInteger test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN TOINTEGER(a.x) AS n
"""
Then an error should be raised
Scenario: ToInteger test 02:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (b{x: 'not int'}), (c{x: '-12'}), (d{x: null}), (e{x: '1.2'}), (f{x: '1.9'})
"""
When executing query:
"""
MATCH (a) RETURN TOINTEGER(a.x) AS n
"""
Then the result should be:
| n |
| 1 |
| null |
| -12 |
| null |
| 1 |
| 1 |
Scenario: ToFloat test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN TOFLOAT(a.x) AS n
"""
Then an error should be raised
Scenario: ToFloat test 02:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (b{x: 'not float'}), (c{x: '-12'}), (d{x: null}), (e{x: '1.2'}), (f{x: 1.9})
"""
When executing query:
"""
MATCH (a) RETURN TOFLOAT(a.x) AS n
"""
Then the result should be:
| n |
| 1.0 |
| null |
| -12.0 |
| null |
| 1.2 |
| 1.9 |
Scenario: Abs test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true})
"""
When executing query:
"""
MATCH (a) RETURN ABS(a.x) AS n
"""
Then an error should be raised
Scenario: Abs test 02:
Given an empty graph
And having executed
"""
CREATE (b{x: '1.0'})
"""
When executing query:
"""
MATCH (a) RETURN ABS(a.x) AS n
"""
Then an error should be raised
Scenario: Abs test 03:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (c{x: -12}), (d{x: null}), (e{x: -2.3}), (f{x: 1.9})
"""
When executing query:
"""
MATCH (a) RETURN ABS(a.x) AS n
"""
Then the result should be:
| n |
| 1 |
| 12 |
| null |
| 2.3 |
| 1.9 |
Scenario: Exp test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN EXP(a.x) AS n
"""
Then an error should be raised
Scenario: Exp test 02:
Given an empty graph
And having executed
"""
CREATE (b{x: '1.0'})),
"""
When executing query:
"""
MATCH (a) RETURN EXP(a.x) AS n
"""
Then an error should be raised
Scenario: Exp test 03:
Given an empty graph
And having executed
"""
CREATE (a{x: 1}), (c{x: -12}), (d{x: null}), (e{x: -2.3}), (f{x: 1.9})
"""
When executing query:
"""
MATCH (a) RETURN EXP(a.x) AS n
"""
Then the result should be:
| n |
| 2.718281828459045 |
| .00000614421235332821 |
| null |
| 0.10025884372280375 |
| 6.6858944422792685 |
Scenario: Log test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN LOG(a.x) AS n
"""
Then an error should be raised
Scenario: Log test 02:
Given an empty graph
And having executed
"""
CREATE (b{x: '1.0'})),
"""
When executing query:
"""
MATCH (a) RETURN LOG(a.x) AS n
"""
Then an error should be raised
Scenario: Log test 03:
Given an empty graph
And having executed
"""
CREATE (a{x: 0.123}), (c{x: -12}), (d{x: null}), (e{x: 27})
"""
When executing query:
"""
MATCH (a) RETURN LOG(a.x) AS n
"""
Then the result should be:
| n |
| -2.0955709236097197 |
| nan |
| null |
| 3.295836866004329 |
Scenario: Log10 test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN LOG10(a.x) AS n
"""
Then an error should be raised
Scenario: Log10 test 02:
Given an empty graph
And having executed
"""
CREATE (b{x: '1.0'})),
"""
When executing query:
"""
MATCH (a) RETURN LOG10(a.x) AS n
"""
Then an error should be raised
Scenario: Log10 test 03:
Given an empty graph
And having executed
"""
CREATE (a{x: 0.123}), (c{x: -12}), (d{x: null}), (e{x: 27})
"""
When executing query:
"""
MATCH (a) RETURN LOG10(a.x) AS n
"""
Then the result should be:
| n |
| -0.9100948885606021 |
| nan |
| null |
| 1.4313637641589874 |
Scenario: Sin test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN SIN(a.x) AS n
"""
Then an error should be raised
Scenario: Sin test 02:
Given an empty graph
And having executed
"""
CREATE (b{x: '1.0'})),
"""
When executing query:
"""
MATCH (a) RETURN SIN(a.x) AS n
"""
Then an error should be raised
Scenario: Sin test 03:
Given an empty graph
And having executed
"""
CREATE (a{x: 0.123}), (c{x: -12}), (d{x: null}), (e{x: 27})
"""
When executing query:
"""
MATCH (a) RETURN SIN(a.x) AS n
"""
Then the result should be:
| n |
| 0.12269009002431533 |
| 0.5365729180004349 |
| null |
| 0.956375928404503 |
Scenario: Cos test 01:
Given an empty graph
And having executed
"""
CREATE (b{x: true}))
"""
When executing query:
"""
MATCH (a) RETURN COS(a.x) AS n
"""
Then an error should be raised
Scenario: Cos test 02:
Given an empty graph
And having executed
"""
CREATE (b{x: '1.0'})),
"""
When executing query:
"""
MATCH (a) RETURN COS(a.x) AS n
"""
Then an error should be raised
Scenario: Cos test 03:
Given an empty graph
And having executed
"""
CREATE (a{x: 0.123}), (c{x: -12}), (d{x: null}), (e{x: 27})
"""
When executing query:
"""
MATCH (a) RETURN COS(a.x) AS n
"""
Then the result should be:
| n |
| 0.9924450321351935 |
| 0.8438539587324921 |
| null |
| -0.2921388087338362 |