Java tutorial
/* * Copyright (c) 2004-2016 Stuart Boston * * This file is part of TheMovieDB API. * * TheMovieDB API is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * TheMovieDB API is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with TheMovieDB API. If not, see <http://www.gnu.org/licenses/>. * */ package com.omertron.themoviedbapi; import com.omertron.themoviedbapi.model.movie.MovieInfo; import org.apache.commons.lang3.StringUtils; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.junit.Assert.assertTrue; /** * * @author Stuart.Boston */ public class CompareTest { private static final Logger LOG = LoggerFactory.getLogger(CompareTest.class); private static MovieInfo moviedb; private static final String TITLE_MAIN = "Blade Runner"; private static final String TITLE_OTHER = "Blade Runner Directors Cut"; private static final String YEAR_FULL = "1982-01-01"; private static final String YEAR_SHORT = "1982"; private static final boolean CASE_SENSITIVE = true; private static final boolean NOT_CASE_SENSITIVE = false; @BeforeClass public static void setUpClass() { TestLogger.configure(); // Set the default comparison movie moviedb = new MovieInfo(); moviedb.setTitle(TITLE_MAIN); moviedb.setOriginalTitle(TITLE_OTHER); moviedb.setReleaseDate(YEAR_FULL); } /** * Exact match */ @Test public void testExactMatch() { int maxDistance = 0; boolean result; result = Compare.movies(moviedb, TITLE_MAIN, YEAR_SHORT, maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_OTHER, YEAR_SHORT, maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_MAIN, YEAR_SHORT, maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_OTHER, YEAR_SHORT, maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_MAIN, "", maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_OTHER, "", maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_MAIN, "", maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, TITLE_OTHER, "", maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); } /** * Close match */ @Test public void testCloseMatch() { int maxDistance = 6; boolean result; String closeMain = "bloderannar"; String closeOther = "Blade Runner Dir Cut"; // Make sure they are close enough int currentDistance; currentDistance = StringUtils.getLevenshteinDistance(TITLE_MAIN, closeMain); LOG.info("Distance between '{}' and '{}' is {}", TITLE_MAIN, closeMain, currentDistance); assertTrue(currentDistance <= maxDistance); currentDistance = StringUtils.getLevenshteinDistance(TITLE_OTHER, closeOther); LOG.info("Distance between '{}' and '{}' is {}", TITLE_OTHER, closeOther, currentDistance); assertTrue(currentDistance <= maxDistance); result = Compare.movies(moviedb, closeMain, YEAR_SHORT, maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeOther, YEAR_SHORT, maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeMain, YEAR_SHORT, maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeOther, YEAR_SHORT, maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeMain, "", maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeOther, "", maxDistance, CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeMain, "", maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); result = Compare.movies(moviedb, closeOther, "", maxDistance, NOT_CASE_SENSITIVE); assertTrue(result); } }