aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/linguistics/AnnotatorConfigTestCase.java
blob: 0d34d2841fddd1aabd1efe069170336d41c4e88e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.indexinglanguage.linguistics;

import com.yahoo.language.Language;
import com.yahoo.language.process.StemMode;
import org.junit.Test;

import static org.junit.Assert.*;

/**
 * @author Simon Thoresen Hult
 */
public class AnnotatorConfigTestCase {

    @Test
    public void requireThatAccessorsWork() {
        AnnotatorConfig config = new AnnotatorConfig();
        for (Language language : Language.values()) {
            config.setLanguage(language);
            assertEquals(language, config.getLanguage());
        }
        for (StemMode mode : StemMode.values()) {
            config.setStemMode(mode);
            assertEquals(mode, config.getStemMode());
        }
        config.setRemoveAccents(true);
        assertTrue(config.getRemoveAccents());
        config.setRemoveAccents(false);
        assertFalse(config.getRemoveAccents());
    }

    @Test
    public void requireThatCopyConstructorIsImplemented() {
        AnnotatorConfig config = new AnnotatorConfig();
        config.setLanguage(Language.ARABIC);
        config.setStemMode(StemMode.SHORTEST);
        config.setRemoveAccents(!config.getRemoveAccents());

        AnnotatorConfig other = new AnnotatorConfig(config);
        assertEquals(config.getLanguage(), other.getLanguage());
        assertEquals(config.getStemMode(), other.getStemMode());
        assertEquals(config.getRemoveAccents(), other.getRemoveAccents());
    }

    @Test
    public void requireThatHashCodeAndEqualsAreImplemented() {
        AnnotatorConfig config = newConfig(Language.DUTCH, StemMode.NONE, true);
        assertFalse(config.equals(new Object()));
        assertFalse(config.equals(newConfig(Language.SPANISH, StemMode.SHORTEST, false)));
        assertFalse(config.equals(newConfig(Language.DUTCH, StemMode.SHORTEST, false)));
        assertFalse(config.equals(newConfig(Language.DUTCH, StemMode.NONE, false)));
        assertEquals(config, newConfig(Language.DUTCH, StemMode.NONE, true));
        assertEquals(config.hashCode(), newConfig(Language.DUTCH, StemMode.NONE, true).hashCode());
    }

    private static AnnotatorConfig newConfig(Language language, StemMode stemMode,
                                             boolean removeAccents) {
        AnnotatorConfig config = new AnnotatorConfig();
        config.setLanguage(language);
        config.setStemMode(stemMode);
        config.setRemoveAccents(removeAccents);
        return config;
    }
}