[EDIT] FILE: OptionTest.php
<?php namespace thiagoalessio\TesseractOCR\Tests\Unit; use thiagoalessio\TesseractOCR\Tests\Common\TestCase; use thiagoalessio\TesseractOCR\Option; class OptionTest extends TestCase { public function testPsm() { $psm = Option::psm(8); $this->assertEquals('-psm 8', $psm('3.05.01')); $this->assertEquals('--psm 8', $psm('4.0.0-beta.1')); $this->assertEquals('--psm 8', $psm('v4.0.0-beta.4.20180912')); } public function testOem() { $oem = Option::oem(2); $this->assertEquals('--oem 2', $oem('3.05.01')); try { $oem('3.04.01'); throw new \Exception('Expected Exception to be thrown'); } catch (\Exception $e) { $expected = 'oem option is only available on Tesseract 3.05 or later.'; $expected.= PHP_EOL."Your version of Tesseract is 3.04.01"; $this->assertEquals($expected, $e->getMessage()); } } public function testDpi() { $dpi = Option::dpi(300); $this->assertEquals('--dpi 300', $dpi()); } public function testUserWords() { $userWords = Option::userWords('/path/to/words'); $this->assertEquals('--user-words "/path/to/words"', $userWords('3.04')); $userWords = Option::userWords('c:\path\to\words'); $this->assertEquals('--user-words "c:\\\\path\\\\to\\\\words"', $userWords('3.04')); try { $userWords('3.03'); throw new \Exception('Expected Exception to be thrown'); } catch (\Exception $e) { $expected = 'user-words option is only available on Tesseract 3.04 or later.'; $expected.= PHP_EOL."Your version of Tesseract is 3.03"; $this->assertEquals($expected, $e->getMessage()); } } public function testUserPatterns() { $userPatterns = Option::userPatterns('/path/to/patterns'); $this->assertEquals('--user-patterns "/path/to/patterns"', $userPatterns('3.04')); $userPatterns = Option::userPatterns('c:\path\to\patterns'); $this->assertEquals('--user-patterns "c:\\\\path\\\\to\\\\patterns"', $userPatterns('3.04')); try { $userPatterns('3.03'); throw new \Exception('Expected Exception to be thrown'); } catch (\Exception $e) { $expected = 'user-patterns option is only available on Tesseract 3.04 or later.'; $expected.= PHP_EOL."Your version of Tesseract is 3.03"; $this->assertEquals($expected, $e->getMessage()); } } public function testTessdataDir() { $tessdataDir = Option::tessdataDir('/path/to/tessdata'); $this->assertEquals('--tessdata-dir "/path/to/tessdata"', $tessdataDir()); $tessdataDir = Option::tessdataDir('c:\path\to\tessdata'); $this->assertEquals('--tessdata-dir "c:\\\\path\\\\to\\\\tessdata"', $tessdataDir()); } public function testLang() { $lang = Option::lang('eng'); $this->assertEquals('-l eng', $lang()); $lang = Option::lang('eng', 'deu', 'jpn'); $this->assertEquals('-l eng+deu+jpn', $lang()); } public function testConfig() { $config = Option::config('var', 'value'); $this->assertEquals('-c "var=value"', $config()); $config = Option::config('chars', '\'"!$@%&?`'); $this->assertEquals('-c "chars=\'\\"!$@%&?`"', $config()); $config = Option::config('fooBarBazChunkyBacon', 'value'); $this->assertEquals('-c "foo_bar_baz_chunky_bacon=value"', $config()); } public function testCheckMinVersion() { Option::checkMinVersion('3.05', '4.0.0.20190314', 'option'); Option::checkMinVersion('3.05', 'v4.0.0.20190314', 'option'); } }
SAVE
CANCEL