예제 #1
0
    def test_js_not_injective(self):
        js_func = "function(x) {return x};"
        ext_fn = JavascriptExtraction(js_func)
        actual = ext_fn.build()
        expected = {"type": "javascript", "function": js_func, "injective": False}

        assert actual == expected
예제 #2
0
    def test_js_not_injective(self):
        js_func = "function(x) {return x};"
        ext_fn = JavascriptExtraction(js_func)
        actual = ext_fn.build()
        expected = {
            "type": "javascript",
            "function": js_func,
            "injective": False
        }

        assert actual == expected
예제 #3
0
    def test_js_not_injective(self):
        js_func = 'function(x) {return x};'
        ext_fn = JavascriptExtraction(js_func)
        actual = ext_fn.build()
        expected = {
            'type': 'javascript',
            'function': js_func,
            'injective': False
        }

        assert actual == expected
예제 #4
0
    def test_js_not_injective(self):
        js_func = 'function(x) {return x};'
        ext_fn = JavascriptExtraction(js_func)
        actual = ext_fn.build()
        expected = {
            'type': 'javascript',
            'function': js_func,
            'injective': False
        }

        assert actual == expected
예제 #5
0
    def test_extraction_functions(self):
        js_func = 'function(x) {return x};'
        ext_fns = [
            (RegexExtraction(r'\w+'), {'type': 'regex', 'expr': '\\w+'}),
            (PartialExtraction(r'\w+'), {'type': 'partial', 'expr': '\\w+'}),
            (JavascriptExtraction(js_func), {
                'type': 'javascript',
                'function': js_func,
                'injective': False
            }),
            (MapLookupExtraction(TestMapLookupExtraction.mapping), {
                'type': 'lookup',
                'lookup': {
                    'type': 'map',
                    'map': TestMapLookupExtraction.mapping
                },
                'retainMissingValue': False,
                'replaceMissingValueWith': None,
                'injective': False
            })
        ]

        for ext_fn, expected_ext_fn in ext_fns:
            dim_spec = DimensionSpec('dim', 'out', extraction_function=ext_fn)
            actual = dim_spec.build()
            expected = {
                'type': 'extraction',
                'dimension': 'dim',
                'outputName': 'out',
                'extractionFn': expected_ext_fn
            }

            assert actual == expected
예제 #6
0
    def test_extraction_functions(self):
        js_func = "function(x) {return x};"
        ext_fns = [
            (RegexExtraction(r"\w+"), {
                "type": "regex",
                "expr": "\\w+"
            }),
            (PartialExtraction(r"\w+"), {
                "type": "partial",
                "expr": "\\w+"
            }),
            (
                JavascriptExtraction(js_func),
                {
                    "type": "javascript",
                    "function": js_func,
                    "injective": False
                },
            ),
            (
                MapLookupExtraction(TestMapLookupExtraction.mapping),
                {
                    "type": "lookup",
                    "lookup": {
                        "type": "map",
                        "map": TestMapLookupExtraction.mapping
                    },
                    "retainMissingValue": False,
                    "replaceMissingValueWith": None,
                    "injective": False,
                },
            ),
        ]

        for ext_fn, expected_ext_fn in ext_fns:
            dim_spec = DimensionSpec("dim", "out", extraction_function=ext_fn)
            actual = dim_spec.build()
            expected = {
                "type": "extraction",
                "dimension": "dim",
                "outputName": "out",
                "extractionFn": expected_ext_fn,
            }

            assert actual == expected