<commit_before><?php

require_once 'classes/String.php';

class StringTest extends PHPUnit_Framework_TestCase
{
	public function testUpperWords()
	{
		$this->assertEquals(String::upperWords('<EMAIL>'), '<EMAIL>');
		$this->assertEquals(String::upperWords('<EMAIL>'), '<EMAIL>');
		$this->assertEquals(String::upperWords('foo bar'),     'Foo Bar');
		$this->assertEquals(String::upperWords('FOO BAR'),     'Foo Bar');
		$this->assertEquals(String::upperWords('fOO bAR'),     'Foo Bar');
	}
}

?><commit_msg>Added tests for String class<commit_after><?php

require_once 'classes/String.php';

class StringTest extends PHPUnit_Framework_TestCase
{
	/**
	 * @dataProvider providerFormatPhoneNumber
	 */
	public function testFormatPhoneNumber($a, $b)
	{
		$this->assertEquals(String::formatPhoneNumber($a), $b);
	}

	public function providerFormatPhoneNumber()
	{
		return array(
			array('1234567890',            '123-456-7890'),
			array('123 456 7890',          '123-456-7890'),
			array('123.456.7890',          '123-456-7890'),
			array('123_456_7890',          '123-456-7890'),
			array('1234567890',            '123-456-7890'),
			array('1234-56-7890',          '123-456-7890'),
			array('(123) 456-7890',        '123-456-7890'),
			array('1234567890 x1000',      '123-456-7890x1000'),
			array('(123) 456-7890_x10.00', '123-456-7890x1000'),
		);
	}

	/**
	 * @dataProvider providerGenerateGravatarHash
	 */
	public function testGenerateGravatarHash($a, $b)
	{
		$this->assertEquals(String::generateGravatarHash($a), $b);
	}

	public function providerGenerateGravatarHash()
	{
		return array(
			array('<EMAIL>', 'f3ada405ce890b6f8204094deb12d8a8'),
			array('<EMAIL>', 'f3ada405ce890b6f8204094deb12d8a8'),
		);
	}

	public function testIsEmpty()
	{
		$this->assertTrue(String::isEmpty(''));
		$this->assertTrue(String::isEmpty(' '));
		$this->assertTrue(String::isEmpty(false));
		$this->assertTrue(String::isEmpty(null));
		$this->assertTrue(String::isEmpty(true, false));

		$this->assertFalse(String::isEmpty(0));
		$this->assertFalse(String::isEmpty('foo'));
		$this->assertFalse(String::isEmpty(' bar '));
		$this->assertFalse(String::isEmpty(true));
	}

	public function testRandom()
	{
		$this->assertEquals(strlen(String::random()),   8);
		$this->assertEquals(strlen(String::random(16)), 16);

		$this->assertEquals(preg_match('/[A-Z0-9]/', String::random(32, true,  true)),  1);
		$this->assertEquals(preg_match('/[A-Z]/',    String::random(32, true,  false)), 1);
		$this->assertEquals(preg_match('/[0-9]/',    String::random(32, false, true)),  1);

		$this->assertEquals(preg_match('/[0-9]/',    String::random(32, true,  false)), 0);
		$this->assertEquals(preg_match('/[A-Z]/',    String::random(32, false, true)),  0);
		$this->assertEquals(preg_match('/[A-Z0-9]/', String::random(32, false, false)), 0);
	}

	/**
	 * @dataProvider providerTruncate
	 */
	public function testTruncate($a, $b, $c, $d)
	{
		$this->assertEquals(String::truncate($a, $b, $c), $d);
	}

	public function providerTruncate()
	{
		return array(
			array('foo bar', 3, true,  '<span title="foo bar" style="cursor:help">foo...</span>'),
			array('foo bar', 3, false, 'foo...'),
			array('foo bar', 7, true,  'foo bar'),
			array('foo bar', 8, true,  'foo bar'),
		);
	}

	/**
	 * @dataProvider providerUpperWords
	 */
	public function testUpperWords($a, $b)
	{
		$this->assertEquals(String::upperWords($a), $b);
	}

	public function providerUpperWords()
	{
		return array(
			array('foo bar',     'Foo Bar'),
			array('FOO BAR',     'Foo Bar'),
			array('fOO bAR',     'Foo Bar'),
			array('<EMAIL>', '<EMAIL>'),
			array('<EMAIL>', '<EMAIL>'),
		);
	}
}

?>
{'fraction_non_alphanumeric': 0.2080592105263158, 'fraction_numerical': 0.07401315789473684, 'mean_word_length': 4.503770739064857, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7632476', 'n_tokens_mistral': 1548, 'n_tokens_neox': 1285, 'n_words': 212}