extern crate sastrawi; use sastrawi::*; #[test] fn test_stem_word() { let _test_items = &[ ("mei", "mei"), ("bui", "bui"), ("nilai", "nilai"), ("hancurlah", "hancur"), ("benarkah", "benar"), ("apatah", "apa"), ("siapapun", "siapa"), ("jubahku", "jubah"), ("bajumu", "baju"), ("celananya", "celana"), ("hantui", "hantu"), ("belikan", "beli"), ("jualan", "jual"), ("bukumukah", "buku"), ("miliknyalah", "milik"), ("kulitkupun", "kulit"), ("berikanku", "beri"), ("sakitimu", "sakit"), ("beriannya", "beri"), ("kasihilah", "kasih"), ("dibuang", "buang"), ("kesakitan", "sakit"), ("sesuap", "suap"), ("beradu", "adu"), ("berambut", "rambut"), ("bersuara", "suara"), ("berdaerah", "daerah"), ("belajar", "ajar"), ("bekerja", "kerja"), ("beternak", "ternak"), ("terasing", "asing"), ("teraup", "raup"), ("tergerak", "gerak"), ("terpuruk", "puruk"), ("teterbang", "terbang"), ("melipat", "lipat"), ("meringkas", "ringkas"), ("mewarnai", "warna"), ("meyakinkan", "yakin"), ("membangun", "bangun"), ("memfitnah", "fitnah"), ("memvonis", "vonis"), ("memperbaru", "baru"), ("mempelajar", "ajar"), ("meminum", "minum"), ("memukul", "pukul"), ("mencinta", "cinta"), ("mendua", "dua"), ("menjauh", "jauh"), ("menziarah", "ziarah"), ("menuklir", "nuklir"), ("menangkap", "tangkap"), ("menggila", "gila"), ("menghajar", "hajar"), ("mengqasar", "qasar"), ("mengudara", "udara"), ("mengupas", "kupas"), ("menyuarakan", "suara"), ("mempopulerkan", "populer"), ("pewarna", "warna"), ("peyoga", "yoga"), ("peradilan", "adil"), ("perumahan", "rumah"), ("permuka", "muka"), ("perdaerah", "daerah"), ("pembangun", "bangun"), ("pemfitnah", "fitnah"), ("pemvonis", "vonis"), ("peminum", "minum"), ("pemukul", "pukul"), ("pencinta", "cinta"), ("pendua", "dua"), ("penjauh", "jauh"), ("penziarah", "ziarah"), ("penuklir", "nuklir"), ("penangkap", "tangkap"), ("penggila", "gila"), ("penghajar", "hajar"), ("pengqasar", "qasar"), ("pengudara", "udara"), ("pengupas", "kupas"), ("penyuara", "suara"), ("pelajar", "ajar"), ("pelabuh", "labuh"), ("petarung", "tarung"), ("terpercaya", "percaya"), ("pekerja", "kerja"), ("peserta", "serta"), ("mempengaruhi", "pengaruh"), ("mengkritik", "kritik"), ("bersekolah", "sekolah"), ("bertahan", "tahan"), ("mencapai", "capai"), ("dimulai", "mulai"), ("petani", "tani"), ("terabai", "abai"), ("mensyaratkan", "syarat"), ("mensyukuri", "syukur"), ("mengebom", "bom"), ("mempromosikan", "promosi"), ("memproteksi", "proteksi"), ("memprediksi", "prediksi"), ("pengkajian", "kaji"), ("pengebom", "bom"), ("bersembunyi", "sembunyi"), ("bersembunyilah", "sembunyi"), ("pelanggan", "langgan"), ("pelaku", "laku"), ("pelangganmukah", "langgan"), ("pelakunyalah", "laku"), ("perbaikan", "baik"), ("kebaikannya", "baik"), ("bisikan", "bisik"), ("menerangi", "terang"), ("berimanlah", "iman"), ("memuaskan", "puas"), ("berpelanggan", "langgan"), ("bermakanan", "makan"), ("menyala", "nyala"), ("menyanyikan", "nyanyi"), ("menyatakannya", "nyata"), ("penyanyi", "nyanyi"), ("penyawaan", "nyawa"), ("rerata", "rata"), ("lelembut", "lembut"), ("lemigas", "ligas"), ("kinerja", "kerja"), ("bertebaran", "tebar"), ("terasingkan", "asing"), ("membangunkan", "bangun"), ("mencintai", "cinta"), ("menduakan", "dua"), ("menjauhi", "jauh"), ("menggilai", "gila"), ("pembangunan", "bangun"), ("marwan", "marwan"), ("subarkah", "subarkah"), ("memberdayakan", "daya"), ("persemakmuran", "makmur"), ("keberuntunganmu", "untung"), ("kesepersepuluhnya", "sepuluh"), ("Perekonomian", "ekonomi"), ("menahan", "tahan"), ("peranan", "peran"), ("memberikan", "beri"), ("medannya", "medan"), ("idealis", "ideal"), ("idealisme", "ideal"), ("finalisasi", "final"), ("mentaati", "taat"), ("melewati", "lewat"), ("menganga", "nganga"), ("kupukul", "pukul"), ("kauhajar", "hajar"), ("kuasa-Mu", "kuasa"), ("nikmat-Ku", "nikmat"), ("allah-lah", "allah") ]; let words = &[ "hancur", "benar", "apa", "siapa", "jubah", "baju", "beli", "celana", "hantu", "jual", "buku", "milik", "kulit", "sakit", "kasih", "buang", "suap", "nilai", "beri", "rambut", "adu", "suara", "daerah", "ajar", "kerja", "ternak", "asing", "raup", "gerak", "puruk", "terbang", "lipat", "ringkas", "warna", "yakin", "bangun", "fitnah", "vonis", "baru", "ajar", "tangkap", "kupas", "minum", "pukul", "cinta", "dua", "jauh", "ziarah", "nuklir", "gila", "hajar", "qasar", "udara", "populer", "warna", "yoga", "adil", "rumah", "muka", "labuh", "tarung", "tebar", "indah", "daya", "untung", "sepuluh", "ekonomi", "makmur", "telah", "serta", "percaya", "pengaruh", "kritik", "seko", "sekolah", "tahan", "capa", "capai", "mula", "mulai", "petan", "tani", "aba", "abai", "balas", "balik", "peran", "medan", "syukur", "syarat", "bom", "promosi", "proteksi", "prediksi", "kaji", "sembunyi", "langgan", "laku", "baik", "terang", "iman", "bisik", "taat", "puas", "makan", "nyala", "nyanyi", "nyata", "nyawa", "rata", "lembut", "ligas", "budaya", "karya", "ideal", "final", "taat", "tiru", "sepak", "kuasa", "malaikat", "nikmat", "lewat", "nganga", "allah" ]; let dict = Dictionary::custom(words); let stemmer = Stemmer::new(&dict); for (value, expected) in _test_items.iter() { let mut actual = value.to_string(); stemmer.stem_word(&mut actual); assert_eq!(actual, expected.to_string()); } } #[test] fn test_stem_sentence() { let expected = [ "ekonomi", "indonesia", "sedang", "dalam", "tumbuh", "yang", "bangga", ]; let dict = Dictionary::new(); let stemmer = Stemmer::new(&dict); let sentence = String::from("Perekonomian Indonesia sedang dalam pertumbuhan yang membanggakan"); let stemmed_words = stemmer.stem_sentence(&sentence); for (index, actual) in stemmed_words.iter().enumerate() { assert_eq!(actual.as_str(), expected[index]); } }