/**
* Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.core;
import java.io.CharArrayReader;
import java.io.File;
import java.util.HashSet;
import junit.framework.TestCase;
import org.python.pydev.shared_core.io.FileUtils;
public class REFTest extends TestCase {
public void testLog() {
//These are the values we get from python.
double[] expected = new double[] { 0.0, 1.70951129135, 2.70951129135, 3.4190225827, 3.96936229592,
4.4190225827, 4.79920493809, 5.12853387405, 5.4190225827, 5.67887358727, 5.91393741372, 6.12853387405,
6.32594348113, 6.50871622944, 6.67887358727, 6.83804516541, 6.9875638801, 7.12853387405, 7.26188004907, };
for (int i = 1; i < 20; i++) {
// System.out.println(i+": "+(i+Math.round(REF.log(i, 1.4))));
assertTrue("" + expected[i - 1] +
" !=" + MathUtils.log(i, 1.5) +
"for log " + i,
Math.abs(expected[i - 1] - MathUtils.log(i, 1.5)) < 0.01);
}
}
public void testGetTempFile() throws Exception {
FileUtils.clearTempFilesAt(new File("."), "ref_test_case");
File parentDir = new File(".");
try {
assertEquals("ref_test_case0", writeAt(parentDir).getName());
assertEquals("ref_test_case1", writeAt(parentDir).getName());
assertEquals("ref_test_case2", writeAt(parentDir).getName());
} finally {
try {
HashSet<String> expected = new HashSet<String>();
expected.add("ref_test_case0");
expected.add("ref_test_case1");
expected.add("ref_test_case2");
assertEquals(expected, FileUtils.getFilesStartingWith(parentDir, "ref_test_case"));
assertEquals("ref_test_case3", FileUtils.getTempFileAt(parentDir, "ref_test_case").getName());
assertEquals("ref_test_case4", FileUtils.getTempFileAt(parentDir, "ref_test_case").getName());
FileUtils.clearTempFilesAt(parentDir, "ref_test_case");
assertEquals("ref_test_case0", FileUtils.getTempFileAt(parentDir, "ref_test_case").getName());
} finally {
FileUtils.clearTempFilesAt(parentDir, "ref_test_case");
}
}
}
public File writeAt(File parentDir) {
File tempFileAt = FileUtils.getTempFileAt(parentDir, "ref_test_case");
FileUtils.writeStrToFile("foo", tempFileAt);
return tempFileAt;
}
public void testDeleteDirectoryTree() throws Exception {
File currentDir = new File(".");
File start_dir = new File(currentDir, "test_start_dir");
assertTrue(!start_dir.exists());
try {
File dir2 = new File(currentDir, "test_start_dir/dir1/dir2");
File file1 = new File(currentDir, "test_start_dir/dir1/dir2/file1.txt");
dir2.mkdirs();
FileUtils.writeStrToFile("something", file1);
assertTrue(dir2.exists());
} finally {
FileUtils.deleteDirectoryTree(start_dir);
}
assertTrue(!start_dir.exists());
}
public void testHasPythonShebang() {
String s = "" +
"#!bla\n" +
"\n" +
"";
CharArrayReader reader = new CharArrayReader(s.toCharArray());
assertFalse(FileUtils.hasPythonShebang(reader));
}
public void testHasPythonShebang1() {
String s = "" +
"#!python\n" +
"\n" +
"";
CharArrayReader reader = new CharArrayReader(s.toCharArray());
assertTrue(FileUtils.hasPythonShebang(reader));
}
public void testHasPythonShebang2() {
String s = "" +
"#!python2\n" +
"\n" +
"";
CharArrayReader reader = new CharArrayReader(s.toCharArray());
assertTrue(FileUtils.hasPythonShebang(reader));
}
public void testHasPythonShebang3() {
String s = "" +
"#!python3\n" +
"\n" +
"";
CharArrayReader reader = new CharArrayReader(s.toCharArray());
assertTrue(FileUtils.hasPythonShebang(reader));
}
public void testHasPythonShebang4() {
CharArrayReader reader = new CharArrayReader(new char[0]);
assertFalse(FileUtils.hasPythonShebang(reader));
}
}