diff --git a/build.xml b/build.xml
index 75801a469..523e328be 100644
--- a/build.xml
+++ b/build.xml
@@ -240,10 +240,10 @@ under the License.
-
-
-
-
+
+
+
+
@@ -449,7 +449,7 @@ under the License.
fork="yes" srcdir="${main.src.test}">
-
+
@@ -478,7 +478,7 @@ under the License.
fork="yes" srcdir="${scratchpad.src.test}">
-
+
@@ -512,19 +512,20 @@ under the License.
fork="yes" srcdir="${contrib.src.test}">
-
+
-
+
+ failonerror="true" destdir="${examples.output.dir}" debug="on" fork="yes"
+ srcdir="${examples.src}">
-
+
@@ -542,7 +543,7 @@ under the License.
fork="yes" srcdir="${ooxml.src.test}">
-
+
diff --git a/src/documentation/content/xdocs/changes.xml b/src/documentation/content/xdocs/changes.xml
index 1aca38e38..ab9a4c796 100644
--- a/src/documentation/content/xdocs/changes.xml
+++ b/src/documentation/content/xdocs/changes.xml
@@ -35,7 +35,9 @@
-
+
+ Move the Formula Evaluator code out of scratchpad
+ Move the missing record aware eventusermodel code out of scratchpad
44652 / 44603 - Improved handling of Pictures in Word Documents
44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits
44627 - Improve the thread safety of POILogFactory
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index 6b55026c7..14c7b817a 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -32,7 +32,9 @@
-
+
+ Move the Formula Evaluator code out of scratchpad
+ Move the missing record aware eventusermodel code out of scratchpad
44652 / 44603 - Improved handling of Pictures in Word Documents
44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits
44627 - Improve the thread safety of POILogFactory
diff --git a/src/scratchpad/src/org/apache/poi/hssf/eventusermodel/MissingRecordAwareHSSFListener.java b/src/java/org/apache/poi/hssf/eventusermodel/MissingRecordAwareHSSFListener.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/eventusermodel/MissingRecordAwareHSSFListener.java
rename to src/java/org/apache/poi/hssf/eventusermodel/MissingRecordAwareHSSFListener.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java b/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
rename to src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java b/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
rename to src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java b/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
rename to src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/AddEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/AddEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/AddEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/AddEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Area2DEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/Area2DEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Area2DEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/Area2DEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Area3DEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/Area3DEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Area3DEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/Area3DEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/AreaEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/AreaEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/AreaEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/AreaEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/BlankEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/BlankEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/BlankEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/BlankEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/BoolEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/BoolEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/BoolEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/BoolEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ConcatEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/ConcatEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ConcatEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/ConcatEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/DivideEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/DivideEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/DivideEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/DivideEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/EqualEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/EqualEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/EqualEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/EqualEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ErrorEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/ErrorEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ErrorEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/ErrorEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Eval.java b/src/java/org/apache/poi/hssf/record/formula/eval/Eval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Eval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/Eval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/EvaluationException.java b/src/java/org/apache/poi/hssf/record/formula/eval/EvaluationException.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/EvaluationException.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/EvaluationException.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ExternalFunction.java b/src/java/org/apache/poi/hssf/record/formula/eval/ExternalFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ExternalFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/ExternalFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/FuncVarEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/FuncVarEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/FuncVarEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/FuncVarEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/FunctionEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/FunctionEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/GreaterEqualEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/GreaterEqualEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/GreaterEqualEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/GreaterEqualEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/GreaterThanEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/GreaterThanEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/GreaterThanEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/GreaterThanEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/LessEqualEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/LessEqualEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/LessEqualEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/LessEqualEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/LessThanEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/LessThanEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/LessThanEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/LessThanEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/MultiplyEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/MultiplyEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/MultiplyEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/MultiplyEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NameEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/NameEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NameEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/NameEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NotEqualEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/NotEqualEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NotEqualEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/NotEqualEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NumberEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/NumberEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NumberEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/NumberEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NumericOperationEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/NumericOperationEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NumericOperationEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/NumericOperationEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NumericValueEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/NumericValueEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/NumericValueEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/NumericValueEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/OperandResolver.java b/src/java/org/apache/poi/hssf/record/formula/eval/OperandResolver.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/OperandResolver.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/OperandResolver.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/OperationEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/OperationEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/OperationEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/OperationEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/PercentEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/PercentEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/PercentEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/PercentEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/PowerEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/PowerEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/PowerEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/PowerEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Ref3DEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/Ref3DEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/Ref3DEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/Ref3DEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/RefEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/RefEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/RefEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/RefEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/RelationalOperationEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/RelationalOperationEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/RelationalOperationEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/RelationalOperationEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/StringEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/StringEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/StringEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/StringEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/StringOperationEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/StringOperationEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/StringOperationEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/StringOperationEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/StringValueEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/StringValueEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/StringValueEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/StringValueEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/SubtractEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/SubtractEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/SubtractEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/SubtractEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/UnaryMinusEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/UnaryMinusEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/UnaryMinusEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/UnaryMinusEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/UnaryPlusEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/UnaryPlusEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/UnaryPlusEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/UnaryPlusEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ValueEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/ValueEval.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ValueEval.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/ValueEval.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ValueEvalToNumericXlator.java b/src/java/org/apache/poi/hssf/record/formula/eval/ValueEvalToNumericXlator.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/eval/ValueEvalToNumericXlator.java
rename to src/java/org/apache/poi/hssf/record/formula/eval/ValueEvalToNumericXlator.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Abs.java b/src/java/org/apache/poi/hssf/record/formula/functions/Abs.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Abs.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Abs.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Absref.java b/src/java/org/apache/poi/hssf/record/formula/functions/Absref.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Absref.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Absref.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Acos.java b/src/java/org/apache/poi/hssf/record/formula/functions/Acos.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Acos.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Acos.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Acosh.java b/src/java/org/apache/poi/hssf/record/formula/functions/Acosh.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Acosh.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Acosh.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Activecell.java b/src/java/org/apache/poi/hssf/record/formula/functions/Activecell.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Activecell.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Activecell.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Address.java b/src/java/org/apache/poi/hssf/record/formula/functions/Address.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Address.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Address.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/And.java b/src/java/org/apache/poi/hssf/record/formula/functions/And.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/And.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/And.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Areas.java b/src/java/org/apache/poi/hssf/record/formula/functions/Areas.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Areas.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Areas.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Argument.java b/src/java/org/apache/poi/hssf/record/formula/functions/Argument.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Argument.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Argument.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Asc.java b/src/java/org/apache/poi/hssf/record/formula/functions/Asc.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Asc.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Asc.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Asin.java b/src/java/org/apache/poi/hssf/record/formula/functions/Asin.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Asin.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Asin.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Asinh.java b/src/java/org/apache/poi/hssf/record/formula/functions/Asinh.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Asinh.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Asinh.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Atan.java b/src/java/org/apache/poi/hssf/record/formula/functions/Atan.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Atan.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Atan.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Atan2.java b/src/java/org/apache/poi/hssf/record/formula/functions/Atan2.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Atan2.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Atan2.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Atanh.java b/src/java/org/apache/poi/hssf/record/formula/functions/Atanh.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Atanh.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Atanh.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Avedev.java b/src/java/org/apache/poi/hssf/record/formula/functions/Avedev.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Avedev.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Avedev.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Average.java b/src/java/org/apache/poi/hssf/record/formula/functions/Average.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Average.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Average.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Averagea.java b/src/java/org/apache/poi/hssf/record/formula/functions/Averagea.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Averagea.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Averagea.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Betadist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Betadist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Betadist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Betadist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Betainv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Betainv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Betainv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Betainv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Binomdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Binomdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Binomdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Binomdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Call.java b/src/java/org/apache/poi/hssf/record/formula/functions/Call.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Call.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Call.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Caller.java b/src/java/org/apache/poi/hssf/record/formula/functions/Caller.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Caller.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Caller.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ceiling.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ceiling.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ceiling.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ceiling.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Cell.java b/src/java/org/apache/poi/hssf/record/formula/functions/Cell.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Cell.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Cell.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Char.java b/src/java/org/apache/poi/hssf/record/formula/functions/Char.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Char.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Char.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Chidist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Chidist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Chidist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Chidist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Chiinv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Chiinv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Chiinv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Chiinv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Chitest.java b/src/java/org/apache/poi/hssf/record/formula/functions/Chitest.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Chitest.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Chitest.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Choose.java b/src/java/org/apache/poi/hssf/record/formula/functions/Choose.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Choose.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Choose.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Clean.java b/src/java/org/apache/poi/hssf/record/formula/functions/Clean.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Clean.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Clean.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Code.java b/src/java/org/apache/poi/hssf/record/formula/functions/Code.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Code.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Code.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Column.java b/src/java/org/apache/poi/hssf/record/formula/functions/Column.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Column.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Column.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Columns.java b/src/java/org/apache/poi/hssf/record/formula/functions/Columns.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Columns.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Columns.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Combin.java b/src/java/org/apache/poi/hssf/record/formula/functions/Combin.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Combin.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Combin.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Concatenate.java b/src/java/org/apache/poi/hssf/record/formula/functions/Concatenate.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Concatenate.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Concatenate.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Confidence.java b/src/java/org/apache/poi/hssf/record/formula/functions/Confidence.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Confidence.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Confidence.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Correl.java b/src/java/org/apache/poi/hssf/record/formula/functions/Correl.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Correl.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Correl.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Cos.java b/src/java/org/apache/poi/hssf/record/formula/functions/Cos.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Cos.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Cos.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Cosh.java b/src/java/org/apache/poi/hssf/record/formula/functions/Cosh.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Cosh.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Cosh.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Count.java b/src/java/org/apache/poi/hssf/record/formula/functions/Count.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Count.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Count.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Counta.java b/src/java/org/apache/poi/hssf/record/formula/functions/Counta.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Counta.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Counta.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Countblank.java b/src/java/org/apache/poi/hssf/record/formula/functions/Countblank.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Countblank.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Countblank.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Countif.java b/src/java/org/apache/poi/hssf/record/formula/functions/Countif.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Countif.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Countif.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Covar.java b/src/java/org/apache/poi/hssf/record/formula/functions/Covar.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Covar.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Covar.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Critbinom.java b/src/java/org/apache/poi/hssf/record/formula/functions/Critbinom.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Critbinom.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Critbinom.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Customrepeat.java b/src/java/org/apache/poi/hssf/record/formula/functions/Customrepeat.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Customrepeat.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Customrepeat.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Date.java b/src/java/org/apache/poi/hssf/record/formula/functions/Date.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Date.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Date.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Datedif.java b/src/java/org/apache/poi/hssf/record/formula/functions/Datedif.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Datedif.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Datedif.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Datestring.java b/src/java/org/apache/poi/hssf/record/formula/functions/Datestring.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Datestring.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Datestring.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Datevalue.java b/src/java/org/apache/poi/hssf/record/formula/functions/Datevalue.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Datevalue.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Datevalue.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Daverage.java b/src/java/org/apache/poi/hssf/record/formula/functions/Daverage.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Daverage.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Daverage.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java b/src/java/org/apache/poi/hssf/record/formula/functions/Day.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Day.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Days360.java b/src/java/org/apache/poi/hssf/record/formula/functions/Days360.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Days360.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Days360.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Db.java b/src/java/org/apache/poi/hssf/record/formula/functions/Db.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Db.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Db.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dbcs.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dbcs.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dbcs.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dbcs.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dcount.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dcount.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dcount.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dcount.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dcounta.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dcounta.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dcounta.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dcounta.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ddb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ddb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ddb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ddb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Degrees.java b/src/java/org/apache/poi/hssf/record/formula/functions/Degrees.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Degrees.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Degrees.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Deref.java b/src/java/org/apache/poi/hssf/record/formula/functions/Deref.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Deref.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Deref.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Devsq.java b/src/java/org/apache/poi/hssf/record/formula/functions/Devsq.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Devsq.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Devsq.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dget.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dget.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dget.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dget.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dmax.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dmax.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dmax.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dmax.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dmin.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dmin.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dmin.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dmin.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dollar.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dollar.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dollar.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dollar.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dproduct.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dproduct.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dproduct.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dproduct.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dstdev.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dstdev.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dstdev.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dstdev.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dstdevp.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dstdevp.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dstdevp.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dstdevp.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dsum.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dsum.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dsum.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dsum.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dvar.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dvar.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dvar.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dvar.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dvarp.java b/src/java/org/apache/poi/hssf/record/formula/functions/Dvarp.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Dvarp.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Dvarp.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Echo.java b/src/java/org/apache/poi/hssf/record/formula/functions/Echo.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Echo.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Echo.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Error.java b/src/java/org/apache/poi/hssf/record/formula/functions/Error.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Error.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Error.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Errortype.java b/src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Errortype.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Errortype.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Evaluate.java b/src/java/org/apache/poi/hssf/record/formula/functions/Evaluate.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Evaluate.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Evaluate.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Even.java b/src/java/org/apache/poi/hssf/record/formula/functions/Even.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Even.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Even.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Exact.java b/src/java/org/apache/poi/hssf/record/formula/functions/Exact.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Exact.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Exact.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Exec.java b/src/java/org/apache/poi/hssf/record/formula/functions/Exec.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Exec.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Exec.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Exp.java b/src/java/org/apache/poi/hssf/record/formula/functions/Exp.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Exp.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Exp.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Expondist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Expondist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Expondist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Expondist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fact.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fact.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fact.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fact.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/False.java b/src/java/org/apache/poi/hssf/record/formula/functions/False.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/False.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/False.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Files.java b/src/java/org/apache/poi/hssf/record/formula/functions/Files.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Files.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Files.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/FinanceFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/FinanceFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/FinanceFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/FinanceFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/FinanceLib.java b/src/java/org/apache/poi/hssf/record/formula/functions/FinanceLib.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/FinanceLib.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/FinanceLib.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Find.java b/src/java/org/apache/poi/hssf/record/formula/functions/Find.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Find.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Find.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Findb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Findb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Findb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Findb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Finv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Finv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Finv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Finv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fisher.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fisher.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fisher.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fisher.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fisherinv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fisherinv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fisherinv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fisherinv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fixed.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fixed.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fixed.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fixed.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Floor.java b/src/java/org/apache/poi/hssf/record/formula/functions/Floor.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Floor.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Floor.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Forecast.java b/src/java/org/apache/poi/hssf/record/formula/functions/Forecast.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Forecast.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Forecast.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Formulaconvert.java b/src/java/org/apache/poi/hssf/record/formula/functions/Formulaconvert.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Formulaconvert.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Formulaconvert.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fpos.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fpos.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fpos.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fpos.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/FreeRefFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/FreeRefFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/FreeRefFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/FreeRefFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Frequency.java b/src/java/org/apache/poi/hssf/record/formula/functions/Frequency.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Frequency.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Frequency.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ftest.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ftest.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ftest.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ftest.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Function.java b/src/java/org/apache/poi/hssf/record/formula/functions/Function.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Function.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Function.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Fv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Fv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Fv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Gammadist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Gammadist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Gammadist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Gammadist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Gammainv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Gammainv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Gammainv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Gammainv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Gammaln.java b/src/java/org/apache/poi/hssf/record/formula/functions/Gammaln.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Gammaln.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Gammaln.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Geomean.java b/src/java/org/apache/poi/hssf/record/formula/functions/Geomean.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Geomean.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Geomean.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Goto.java b/src/java/org/apache/poi/hssf/record/formula/functions/Goto.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Goto.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Goto.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Group.java b/src/java/org/apache/poi/hssf/record/formula/functions/Group.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Group.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Group.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Growth.java b/src/java/org/apache/poi/hssf/record/formula/functions/Growth.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Growth.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Growth.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Halt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Halt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Halt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Halt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Harmean.java b/src/java/org/apache/poi/hssf/record/formula/functions/Harmean.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Harmean.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Harmean.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Help.java b/src/java/org/apache/poi/hssf/record/formula/functions/Help.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Help.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Help.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hlookup.java b/src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hlookup.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Hlookup.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hour.java b/src/java/org/apache/poi/hssf/record/formula/functions/Hour.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hour.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Hour.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hyperlink.java b/src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hyperlink.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Hyperlink.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hypgeomdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Hypgeomdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Hypgeomdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Hypgeomdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/If.java b/src/java/org/apache/poi/hssf/record/formula/functions/If.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/If.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/If.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Index.java b/src/java/org/apache/poi/hssf/record/formula/functions/Index.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Index.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Index.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Indirect.java b/src/java/org/apache/poi/hssf/record/formula/functions/Indirect.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Indirect.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Indirect.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Info.java b/src/java/org/apache/poi/hssf/record/formula/functions/Info.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Info.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Info.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Initiate.java b/src/java/org/apache/poi/hssf/record/formula/functions/Initiate.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Initiate.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Initiate.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Input.java b/src/java/org/apache/poi/hssf/record/formula/functions/Input.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Input.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Input.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Int.java b/src/java/org/apache/poi/hssf/record/formula/functions/Int.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Int.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Int.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Intercept.java b/src/java/org/apache/poi/hssf/record/formula/functions/Intercept.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Intercept.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Intercept.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ipmt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ipmt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ipmt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ipmt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Irr.java b/src/java/org/apache/poi/hssf/record/formula/functions/Irr.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Irr.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Irr.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/IsError.java b/src/java/org/apache/poi/hssf/record/formula/functions/IsError.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/IsError.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/IsError.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/IsNa.java b/src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/IsNa.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/IsNa.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isblank.java b/src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isblank.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Isblank.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Iserr.java b/src/java/org/apache/poi/hssf/record/formula/functions/Iserr.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Iserr.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Iserr.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Islogical.java b/src/java/org/apache/poi/hssf/record/formula/functions/Islogical.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Islogical.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Islogical.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isnontext.java b/src/java/org/apache/poi/hssf/record/formula/functions/Isnontext.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isnontext.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Isnontext.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isnumber.java b/src/java/org/apache/poi/hssf/record/formula/functions/Isnumber.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isnumber.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Isnumber.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ispmt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ispmt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ispmt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ispmt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isref.java b/src/java/org/apache/poi/hssf/record/formula/functions/Isref.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Isref.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Isref.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Istext.java b/src/java/org/apache/poi/hssf/record/formula/functions/Istext.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Istext.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Istext.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Kurt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Kurt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Kurt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Kurt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Large.java b/src/java/org/apache/poi/hssf/record/formula/functions/Large.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Large.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Large.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lasterror.java b/src/java/org/apache/poi/hssf/record/formula/functions/Lasterror.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lasterror.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Lasterror.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Left.java b/src/java/org/apache/poi/hssf/record/formula/functions/Left.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Left.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Left.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Leftb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Leftb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Leftb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Leftb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Len.java b/src/java/org/apache/poi/hssf/record/formula/functions/Len.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Len.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Len.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lenb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Lenb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lenb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Lenb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Linest.java b/src/java/org/apache/poi/hssf/record/formula/functions/Linest.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Linest.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Linest.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Links.java b/src/java/org/apache/poi/hssf/record/formula/functions/Links.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Links.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Links.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ln.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ln.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ln.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ln.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Log.java b/src/java/org/apache/poi/hssf/record/formula/functions/Log.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Log.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Log.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Log10.java b/src/java/org/apache/poi/hssf/record/formula/functions/Log10.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Log10.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Log10.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Logest.java b/src/java/org/apache/poi/hssf/record/formula/functions/Logest.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Logest.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Logest.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Loginv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Loginv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Loginv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Loginv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lognormdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Lognormdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lognormdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Lognormdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lookup.java b/src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lookup.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Lookup.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/LookupUtils.java b/src/java/org/apache/poi/hssf/record/formula/functions/LookupUtils.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/LookupUtils.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/LookupUtils.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lower.java b/src/java/org/apache/poi/hssf/record/formula/functions/Lower.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Lower.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Lower.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Match.java b/src/java/org/apache/poi/hssf/record/formula/functions/Match.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Match.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Match.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/MathX.java b/src/java/org/apache/poi/hssf/record/formula/functions/MathX.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/MathX.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/MathX.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Max.java b/src/java/org/apache/poi/hssf/record/formula/functions/Max.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Max.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Max.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Maxa.java b/src/java/org/apache/poi/hssf/record/formula/functions/Maxa.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Maxa.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Maxa.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mdeterm.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mdeterm.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mdeterm.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mdeterm.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Median.java b/src/java/org/apache/poi/hssf/record/formula/functions/Median.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Median.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Median.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mid.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mid.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mid.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mid.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Midb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Midb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Midb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Midb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Min.java b/src/java/org/apache/poi/hssf/record/formula/functions/Min.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Min.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Min.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mina.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mina.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mina.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mina.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Minute.java b/src/java/org/apache/poi/hssf/record/formula/functions/Minute.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Minute.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Minute.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Minverse.java b/src/java/org/apache/poi/hssf/record/formula/functions/Minverse.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Minverse.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Minverse.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mirr.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mirr.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mirr.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mirr.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mmult.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mmult.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mmult.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mmult.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mod.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mod.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mod.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mod.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mode.java b/src/java/org/apache/poi/hssf/record/formula/functions/Mode.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mode.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Mode.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Month.java b/src/java/org/apache/poi/hssf/record/formula/functions/Month.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Month.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Month.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/N.java b/src/java/org/apache/poi/hssf/record/formula/functions/N.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/N.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/N.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Na.java b/src/java/org/apache/poi/hssf/record/formula/functions/Na.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Na.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Na.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Names.java b/src/java/org/apache/poi/hssf/record/formula/functions/Names.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Names.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Names.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Negbinomdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Negbinomdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Negbinomdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Negbinomdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Normdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Normdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Normdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Normdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Norminv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Norminv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Norminv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Norminv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Normsdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Normsdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Normsdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Normsdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Normsinv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Normsinv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Normsinv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Normsinv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Not.java b/src/java/org/apache/poi/hssf/record/formula/functions/Not.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Not.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Not.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Note.java b/src/java/org/apache/poi/hssf/record/formula/functions/Note.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Note.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Note.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Now.java b/src/java/org/apache/poi/hssf/record/formula/functions/Now.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Now.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Now.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Nper.java b/src/java/org/apache/poi/hssf/record/formula/functions/Nper.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Nper.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Nper.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Npv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Npv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Npv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Npv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Numberstring.java b/src/java/org/apache/poi/hssf/record/formula/functions/Numberstring.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Numberstring.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Numberstring.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/NumericFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/NumericFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/NumericFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Odd.java b/src/java/org/apache/poi/hssf/record/formula/functions/Odd.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Odd.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Odd.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Offset.java b/src/java/org/apache/poi/hssf/record/formula/functions/Offset.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Offset.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Offset.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Or.java b/src/java/org/apache/poi/hssf/record/formula/functions/Or.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Or.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Or.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pearson.java b/src/java/org/apache/poi/hssf/record/formula/functions/Pearson.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pearson.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Pearson.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Percentile.java b/src/java/org/apache/poi/hssf/record/formula/functions/Percentile.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Percentile.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Percentile.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Percentrank.java b/src/java/org/apache/poi/hssf/record/formula/functions/Percentrank.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Percentrank.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Percentrank.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Permut.java b/src/java/org/apache/poi/hssf/record/formula/functions/Permut.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Permut.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Permut.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pi.java b/src/java/org/apache/poi/hssf/record/formula/functions/Pi.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pi.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Pi.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pmt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Pmt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pmt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Pmt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Poisson.java b/src/java/org/apache/poi/hssf/record/formula/functions/Poisson.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Poisson.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Poisson.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Power.java b/src/java/org/apache/poi/hssf/record/formula/functions/Power.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Power.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Power.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ppmt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ppmt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ppmt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ppmt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Prob.java b/src/java/org/apache/poi/hssf/record/formula/functions/Prob.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Prob.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Prob.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Product.java b/src/java/org/apache/poi/hssf/record/formula/functions/Product.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Product.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Product.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Proper.java b/src/java/org/apache/poi/hssf/record/formula/functions/Proper.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Proper.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Proper.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Pv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Pv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Quartile.java b/src/java/org/apache/poi/hssf/record/formula/functions/Quartile.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Quartile.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Quartile.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Radians.java b/src/java/org/apache/poi/hssf/record/formula/functions/Radians.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Radians.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Radians.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rand.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rand.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rand.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rand.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rank.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rank.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rank.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rank.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rate.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rate.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rate.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rate.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Reftext.java b/src/java/org/apache/poi/hssf/record/formula/functions/Reftext.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Reftext.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Reftext.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Relref.java b/src/java/org/apache/poi/hssf/record/formula/functions/Relref.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Relref.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Relref.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Replace.java b/src/java/org/apache/poi/hssf/record/formula/functions/Replace.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Replace.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Replace.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Replaceb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Replaceb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Replaceb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Replaceb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rept.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rept.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rept.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rept.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Request.java b/src/java/org/apache/poi/hssf/record/formula/functions/Request.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Request.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Request.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Result.java b/src/java/org/apache/poi/hssf/record/formula/functions/Result.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Result.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Result.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Right.java b/src/java/org/apache/poi/hssf/record/formula/functions/Right.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Right.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Right.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rightb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rightb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rightb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rightb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Roman.java b/src/java/org/apache/poi/hssf/record/formula/functions/Roman.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Roman.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Roman.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Round.java b/src/java/org/apache/poi/hssf/record/formula/functions/Round.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Round.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Round.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rounddown.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rounddown.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rounddown.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rounddown.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Roundup.java b/src/java/org/apache/poi/hssf/record/formula/functions/Roundup.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Roundup.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Roundup.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Row.java b/src/java/org/apache/poi/hssf/record/formula/functions/Row.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Row.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Row.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rows.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rows.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rows.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rows.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rsq.java b/src/java/org/apache/poi/hssf/record/formula/functions/Rsq.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Rsq.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Rsq.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Search.java b/src/java/org/apache/poi/hssf/record/formula/functions/Search.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Search.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Search.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Searchb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Searchb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Searchb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Searchb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Second.java b/src/java/org/apache/poi/hssf/record/formula/functions/Second.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Second.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Second.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Series.java b/src/java/org/apache/poi/hssf/record/formula/functions/Series.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Series.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Series.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Setname.java b/src/java/org/apache/poi/hssf/record/formula/functions/Setname.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Setname.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Setname.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Setvalue.java b/src/java/org/apache/poi/hssf/record/formula/functions/Setvalue.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Setvalue.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Setvalue.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sign.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sign.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sign.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sign.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sin.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sin.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sin.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sin.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sinh.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sinh.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sinh.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sinh.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Skew.java b/src/java/org/apache/poi/hssf/record/formula/functions/Skew.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Skew.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Skew.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sln.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sln.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sln.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sln.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Slope.java b/src/java/org/apache/poi/hssf/record/formula/functions/Slope.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Slope.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Slope.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Small.java b/src/java/org/apache/poi/hssf/record/formula/functions/Small.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Small.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Small.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sqrt.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sqrt.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sqrt.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sqrt.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Standardize.java b/src/java/org/apache/poi/hssf/record/formula/functions/Standardize.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Standardize.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Standardize.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/StatsLib.java b/src/java/org/apache/poi/hssf/record/formula/functions/StatsLib.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/StatsLib.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/StatsLib.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdev.java b/src/java/org/apache/poi/hssf/record/formula/functions/Stdev.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdev.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Stdev.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdeva.java b/src/java/org/apache/poi/hssf/record/formula/functions/Stdeva.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdeva.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Stdeva.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdevp.java b/src/java/org/apache/poi/hssf/record/formula/functions/Stdevp.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdevp.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Stdevp.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdevpa.java b/src/java/org/apache/poi/hssf/record/formula/functions/Stdevpa.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Stdevpa.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Stdevpa.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Step.java b/src/java/org/apache/poi/hssf/record/formula/functions/Step.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Step.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Step.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Steyx.java b/src/java/org/apache/poi/hssf/record/formula/functions/Steyx.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Steyx.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Steyx.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Substitute.java b/src/java/org/apache/poi/hssf/record/formula/functions/Substitute.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Substitute.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Substitute.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Subtotal.java b/src/java/org/apache/poi/hssf/record/formula/functions/Subtotal.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Subtotal.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Subtotal.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sum.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sum.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sum.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sum.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumif.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumif.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sumif.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumproduct.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumproduct.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sumproduct.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumsq.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sumsq.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumsq.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sumsq.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumx2my2.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sumx2my2.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumx2my2.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sumx2my2.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumx2py2.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sumx2py2.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumx2py2.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sumx2py2.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumxmy2.java b/src/java/org/apache/poi/hssf/record/formula/functions/Sumxmy2.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Sumxmy2.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Sumxmy2.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Syd.java b/src/java/org/apache/poi/hssf/record/formula/functions/Syd.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Syd.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Syd.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/T.java b/src/java/org/apache/poi/hssf/record/formula/functions/T.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/T.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/T.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tan.java b/src/java/org/apache/poi/hssf/record/formula/functions/Tan.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tan.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Tan.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tanh.java b/src/java/org/apache/poi/hssf/record/formula/functions/Tanh.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tanh.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Tanh.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tdist.java b/src/java/org/apache/poi/hssf/record/formula/functions/Tdist.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tdist.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Tdist.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Text.java b/src/java/org/apache/poi/hssf/record/formula/functions/Text.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Text.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Text.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/TextFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/TextFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/TextFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Textref.java b/src/java/org/apache/poi/hssf/record/formula/functions/Textref.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Textref.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Textref.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Time.java b/src/java/org/apache/poi/hssf/record/formula/functions/Time.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Time.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Time.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Timevalue.java b/src/java/org/apache/poi/hssf/record/formula/functions/Timevalue.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Timevalue.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Timevalue.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tinv.java b/src/java/org/apache/poi/hssf/record/formula/functions/Tinv.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Tinv.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Tinv.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Today.java b/src/java/org/apache/poi/hssf/record/formula/functions/Today.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Today.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Today.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Transpose.java b/src/java/org/apache/poi/hssf/record/formula/functions/Transpose.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Transpose.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Transpose.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trend.java b/src/java/org/apache/poi/hssf/record/formula/functions/Trend.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trend.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Trend.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trim.java b/src/java/org/apache/poi/hssf/record/formula/functions/Trim.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trim.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Trim.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trimmean.java b/src/java/org/apache/poi/hssf/record/formula/functions/Trimmean.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trimmean.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Trimmean.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/True.java b/src/java/org/apache/poi/hssf/record/formula/functions/True.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/True.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/True.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trunc.java b/src/java/org/apache/poi/hssf/record/formula/functions/Trunc.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Trunc.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Trunc.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ttest.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ttest.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ttest.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ttest.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Type.java b/src/java/org/apache/poi/hssf/record/formula/functions/Type.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Type.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Type.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Upper.java b/src/java/org/apache/poi/hssf/record/formula/functions/Upper.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Upper.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Upper.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Usdollar.java b/src/java/org/apache/poi/hssf/record/formula/functions/Usdollar.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Usdollar.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Usdollar.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Value.java b/src/java/org/apache/poi/hssf/record/formula/functions/Value.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Value.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Value.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Var.java b/src/java/org/apache/poi/hssf/record/formula/functions/Var.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Var.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Var.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Vara.java b/src/java/org/apache/poi/hssf/record/formula/functions/Vara.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Vara.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Vara.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Varp.java b/src/java/org/apache/poi/hssf/record/formula/functions/Varp.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Varp.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Varp.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Varpa.java b/src/java/org/apache/poi/hssf/record/formula/functions/Varpa.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Varpa.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Varpa.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Vdb.java b/src/java/org/apache/poi/hssf/record/formula/functions/Vdb.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Vdb.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Vdb.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Vlookup.java b/src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Vlookup.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Vlookup.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Volatile.java b/src/java/org/apache/poi/hssf/record/formula/functions/Volatile.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Volatile.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Volatile.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Weekday.java b/src/java/org/apache/poi/hssf/record/formula/functions/Weekday.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Weekday.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Weekday.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Weibull.java b/src/java/org/apache/poi/hssf/record/formula/functions/Weibull.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Weibull.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Weibull.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java b/src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Year.java b/src/java/org/apache/poi/hssf/record/formula/functions/Year.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Year.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Year.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ztest.java b/src/java/org/apache/poi/hssf/record/formula/functions/Ztest.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Ztest.java
rename to src/java/org/apache/poi/hssf/record/formula/functions/Ztest.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/usermodel/EvaluationCycleDetector.java b/src/java/org/apache/poi/hssf/usermodel/EvaluationCycleDetector.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/usermodel/EvaluationCycleDetector.java
rename to src/java/org/apache/poi/hssf/usermodel/EvaluationCycleDetector.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/usermodel/EvaluationCycleDetectorManager.java b/src/java/org/apache/poi/hssf/usermodel/EvaluationCycleDetectorManager.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/usermodel/EvaluationCycleDetectorManager.java
rename to src/java/org/apache/poi/hssf/usermodel/EvaluationCycleDetectorManager.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java b/src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
rename to src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
diff --git a/src/scratchpad/src/org/apache/poi/hssf/usermodel/OperationEvaluatorFactory.java b/src/java/org/apache/poi/hssf/usermodel/OperationEvaluatorFactory.java
similarity index 100%
rename from src/scratchpad/src/org/apache/poi/hssf/usermodel/OperationEvaluatorFactory.java
rename to src/java/org/apache/poi/hssf/usermodel/OperationEvaluatorFactory.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44297.java b/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44297.java
deleted file mode 100755
index ce4afd36f..000000000
--- a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44297.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.apache.poi.hssf.usermodel;
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-
-import junit.framework.TestCase;
-
-import java.io.IOException;
-import java.io.FileInputStream;
-import java.io.File;
-
-/**
- * Bug 44297: 32767+32768 is evaluated to -1
- * Fix: IntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation
- * if a formula has values in the interval [Short.MAX_VALUE, (Short.MAX_VALUE+1)*2]
- *
- * @author Yegor Kozlov
- */
-
-public class TestBug44297 extends TestCase {
- protected String cwd = System.getProperty("HSSF.testdata.path");
-
- public void test44297() throws IOException {
- FileInputStream in = new FileInputStream(new File(cwd, "44297.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(in);
- in.close();
-
- HSSFRow row;
- HSSFCell cell;
-
- HSSFSheet sheet = wb.getSheetAt(0);
-
- HSSFFormulaEvaluator eva = new HSSFFormulaEvaluator(sheet, wb);
-
- row = (HSSFRow)sheet.getRow(0);
- cell = row.getCell((short)0);
- assertEquals("31+46", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(77, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(1);
- cell = row.getCell((short)0);
- assertEquals("30+53", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(83, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(2);
- cell = row.getCell((short)0);
- assertEquals("SUM(A1:A2)", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(160, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(4);
- cell = row.getCell((short)0);
- assertEquals("32767+32768", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(65535, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(7);
- cell = row.getCell((short)0);
- assertEquals("32744+42333", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(75077, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(8);
- cell = row.getCell((short)0);
- assertEquals("327680.0/32768", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(10, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(9);
- cell = row.getCell((short)0);
- assertEquals("32767+32769", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(65536, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(10);
- cell = row.getCell((short)0);
- assertEquals("35000+36000", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(71000, eva.evaluate(cell).getNumberValue(), 0);
-
- row = (HSSFRow)sheet.getRow(11);
- cell = row.getCell((short)0);
- assertEquals("-1000000.0-3000000.0", cell.getCellFormula());
- eva.setCurrentRow(row);
- assertEquals(-4000000, eva.evaluate(cell).getNumberValue(), 0);
- }
-
-}
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44410.java b/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44410.java
deleted file mode 100644
index 27c3bdc38..000000000
--- a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44410.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.apache.poi.hssf.usermodel;
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-
-import junit.framework.TestCase;
-
-import java.io.IOException;
-import java.io.FileInputStream;
-import java.io.File;
-import java.util.List;
-
-import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
-import org.apache.poi.hssf.record.formula.AreaPtg;
-import org.apache.poi.hssf.record.formula.FuncVarPtg;
-
-/**
- * Bug 44410: SUM(C:C) is valid in excel, and means a sum
- * of all the rows in Column C
- *
- * @author Nick Burch
- */
-
-public class TestBug44410 extends TestCase {
- protected String cwd = System.getProperty("HSSF.testdata.path");
-
- public void test44410() throws IOException {
- FileInputStream in = new FileInputStream(new File(cwd, "SingleLetterRanges.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(in);
- in.close();
-
- HSSFSheet sheet = wb.getSheetAt(0);
-
- HSSFFormulaEvaluator eva = new HSSFFormulaEvaluator(sheet, wb);
-
- // =index(C:C,2,1) -> 2
- HSSFRow rowIDX = (HSSFRow)sheet.getRow(3);
- // =sum(C:C) -> 6
- HSSFRow rowSUM = (HSSFRow)sheet.getRow(4);
- // =sum(C:D) -> 66
- HSSFRow rowSUM2D = (HSSFRow)sheet.getRow(5);
-
- // Test the sum
- HSSFCell cellSUM = rowSUM.getCell((short)0);
-
- FormulaRecordAggregate frec =
- (FormulaRecordAggregate)cellSUM.getCellValueRecord();
- List ops = frec.getFormulaRecord().getParsedExpression();
- assertEquals(2, ops.size());
- assertEquals(AreaPtg.class, ops.get(0).getClass());
- assertEquals(FuncVarPtg.class, ops.get(1).getClass());
-
- // Actually stored as C1 to C65536
- // (last row is -1 === 65535)
- AreaPtg ptg = (AreaPtg)ops.get(0);
- assertEquals(2, ptg.getFirstColumn());
- assertEquals(2, ptg.getLastColumn());
- assertEquals(0, ptg.getFirstRow());
- assertEquals(65535, ptg.getLastRow());
- assertEquals("C:C", ptg.toFormulaString(wb.getWorkbook()));
-
- // Will show as C:C, but won't know how many
- // rows it covers as we don't have the sheet
- // to hand when turning the Ptgs into a string
- assertEquals("SUM(C:C)", cellSUM.getCellFormula());
- eva.setCurrentRow(rowSUM);
-
- // But the evaluator knows the sheet, so it
- // can do it properly
- assertEquals(6, eva.evaluate(cellSUM).getNumberValue(), 0);
-
-
- // Test the index
- // Again, the formula string will be right but
- // lacking row count, evaluated will be right
- HSSFCell cellIDX = rowIDX.getCell((short)0);
- assertEquals("INDEX(C:C,2,1)", cellIDX.getCellFormula());
- eva.setCurrentRow(rowIDX);
- assertEquals(2, eva.evaluate(cellIDX).getNumberValue(), 0);
-
- // Across two colums
- HSSFCell cellSUM2D = rowSUM2D.getCell((short)0);
- assertEquals("SUM(C:D)", cellSUM2D.getCellFormula());
- eva.setCurrentRow(rowSUM2D);
- assertEquals(66, eva.evaluate(cellSUM2D).getNumberValue(), 0);
- }
-}
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44508.java b/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44508.java
deleted file mode 100644
index 3362f3c3e..000000000
--- a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44508.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.poi.hssf.usermodel;
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-
-import junit.framework.TestCase;
-
-public class TestBug44508 extends TestCase {
- protected String cwd = System.getProperty("HSSF.testdata.path");
-
- public void testEvaluateBooleanInCell_bug44508() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet();
- wb.setSheetName(0, "Sheet1");
- HSSFRow row = sheet.createRow(0);
- HSSFCell cell = row.createCell((short)0);
-
- cell.setCellFormula("1=1");
-
- HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
- fe.setCurrentRow(row);
- try {
- fe.evaluateInCell(cell);
- } catch (NumberFormatException e) {
- fail("Identified bug 44508");
- }
- assertEquals(true, cell.getBooleanCellValue());
- }
-}
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java b/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
deleted file mode 100644
index db4be7f41..000000000
--- a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-package org.apache.poi.hssf.usermodel;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-public final class TestFormulaEvaluatorBugs extends TestCase {
- private String dirName;
- private String tmpDirName;
-
- protected void setUp() throws Exception {
- super.setUp();
- dirName = System.getProperty("HSSF.testdata.path");
- tmpDirName = System.getProperty("java.io.tmpdir");
- }
-
- /**
- * An odd problem with evaluateFormulaCell giving the
- * right values when file is opened, but changes
- * to the source data in some versions of excel
- * doesn't cause them to be updated. However, other
- * versions of excel, and gnumeric, work just fine
- * WARNING - tedious bug where you actually have to
- * open up excel
- */
- public void test44636() throws Exception {
- // Open the existing file, tweak one value and
- // re-calculate
- FileInputStream in = new FileInputStream(new File(dirName,"44636.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(in);
- HSSFSheet sheet = wb.getSheetAt (0);
- HSSFRow row = sheet.getRow (0);
-
- row.getCell((short)0).setCellValue(4.2);
- row.getCell((short)2).setCellValue(25);
-
- HSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
- assertEquals(4.2*25, row.getCell((short)3).getNumericCellValue(), 0.0001);
-
- // Save
- File existing = new File(tmpDirName,"44636-existing.xls");
- FileOutputStream out = new FileOutputStream(existing);
- wb.write(out);
- out.close();
- System.err.println("Existing file for bug #44636 written to " + existing.toString());
-
-
- // Now, do a new file from scratch
- wb = new HSSFWorkbook();
- sheet = wb.createSheet();
-
- row = sheet.createRow(0);
- row.createCell((short)0).setCellValue(1.2);
- row.createCell((short)1).setCellValue(4.2);
-
- row = sheet.createRow(1);
- row.createCell((short)0).setCellFormula("SUM(A1:B1)");
-
- HSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
- assertEquals(5.4, row.getCell((short)0).getNumericCellValue(), 0.0001);
-
- // Save
- File scratch = new File(tmpDirName,"44636-scratch.xls");
- out = new FileOutputStream(scratch);
- wb.write(out);
- out.close();
- System.err.println("New file for bug #44636 written to " + scratch.toString());
- }
-}
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java b/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
rename to src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java b/src/testcases/org/apache/poi/hssf/model/TestFormulaParserEval.java
similarity index 96%
rename from src/scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java
rename to src/testcases/org/apache/poi/hssf/model/TestFormulaParserEval.java
index 0141e1b2a..741973453 100644
--- a/src/scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java
+++ b/src/testcases/org/apache/poi/hssf/model/TestFormulaParserEval.java
@@ -33,10 +33,10 @@ import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.CellValue;
/**
* Test the low level formula parser functionality,
- * but using parts which need to use the
- * HSSFFormulaEvaluator, which is in scratchpad
+ * but using parts which need to use
+ * HSSFFormulaEvaluator.
*/
-public final class TestFormulaParserSP extends TestCase {
+public final class TestFormulaParserEval extends TestCase {
public void testWithNamedRange() throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook();
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/AllFormulaEvalTests.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/AllFormulaEvalTests.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/AllFormulaEvalTests.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/AllFormulaEvalTests.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestCircularReferences.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/TestCircularReferences.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestCircularReferences.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/TestCircularReferences.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestExternalFunction.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/TestExternalFunction.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestExternalFunction.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/TestExternalFunction.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulaBugs.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulaBugs.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulaBugs.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulaBugs.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulasFromSpreadsheet.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulasFromSpreadsheet.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulasFromSpreadsheet.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulasFromSpreadsheet.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java b/src/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java
rename to src/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/AbstractNumericTestCase.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/AbstractNumericTestCase.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/AbstractNumericTestCase.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/AbstractNumericTestCase.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/AllIndividualFunctionEvaluationTests.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/AllIndividualFunctionEvaluationTests.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/AllIndividualFunctionEvaluationTests.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/AllIndividualFunctionEvaluationTests.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/NumericFunctionInvoker.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/NumericFunctionInvoker.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/NumericFunctionInvoker.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/NumericFunctionInvoker.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestFinanceLib.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestFinanceLib.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestFinanceLib.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestFinanceLib.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestIsBlank.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestIsBlank.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestIsBlank.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestIsBlank.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestLookupFunctionsFromSpreadsheet.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLookupFunctionsFromSpreadsheet.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestLookupFunctionsFromSpreadsheet.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestLookupFunctionsFromSpreadsheet.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestMathX.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMathX.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestMathX.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestMathX.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestOffset.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestOffset.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestOffset.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestOffset.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestStatsLib.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestStatsLib.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestStatsLib.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestStatsLib.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestXYNumericFunction.java b/src/testcases/org/apache/poi/hssf/record/formula/functions/TestXYNumericFunction.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestXYNumericFunction.java
rename to src/testcases/org/apache/poi/hssf/record/formula/functions/TestXYNumericFunction.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug42464.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBug42464.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug42464.java
rename to src/testcases/org/apache/poi/hssf/usermodel/TestBug42464.java
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug43093.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBug43093.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug43093.java
rename to src/testcases/org/apache/poi/hssf/usermodel/TestBug43093.java
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
new file mode 100644
index 000000000..87a760f71
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
@@ -0,0 +1,257 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.hssf.usermodel;
+
+import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
+import org.apache.poi.hssf.record.formula.AreaPtg;
+import org.apache.poi.hssf.record.formula.FuncVarPtg;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public final class TestFormulaEvaluatorBugs extends TestCase {
+ private String dirName;
+ private String tmpDirName;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ dirName = System.getProperty("HSSF.testdata.path");
+ tmpDirName = System.getProperty("java.io.tmpdir");
+ }
+
+ /**
+ * An odd problem with evaluateFormulaCell giving the
+ * right values when file is opened, but changes
+ * to the source data in some versions of excel
+ * doesn't cause them to be updated. However, other
+ * versions of excel, and gnumeric, work just fine
+ * WARNING - tedious bug where you actually have to
+ * open up excel
+ */
+ public void test44636() throws Exception {
+ // Open the existing file, tweak one value and
+ // re-calculate
+ FileInputStream in = new FileInputStream(new File(dirName,"44636.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(in);
+ HSSFSheet sheet = wb.getSheetAt (0);
+ HSSFRow row = sheet.getRow (0);
+
+ row.getCell((short)0).setCellValue(4.2);
+ row.getCell((short)2).setCellValue(25);
+
+ HSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
+ assertEquals(4.2*25, row.getCell((short)3).getNumericCellValue(), 0.0001);
+
+ // Save
+ File existing = new File(tmpDirName,"44636-existing.xls");
+ FileOutputStream out = new FileOutputStream(existing);
+ wb.write(out);
+ out.close();
+ System.err.println("Existing file for bug #44636 written to " + existing.toString());
+
+
+ // Now, do a new file from scratch
+ wb = new HSSFWorkbook();
+ sheet = wb.createSheet();
+
+ row = sheet.createRow(0);
+ row.createCell((short)0).setCellValue(1.2);
+ row.createCell((short)1).setCellValue(4.2);
+
+ row = sheet.createRow(1);
+ row.createCell((short)0).setCellFormula("SUM(A1:B1)");
+
+ HSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
+ assertEquals(5.4, row.getCell((short)0).getNumericCellValue(), 0.0001);
+
+ // Save
+ File scratch = new File(tmpDirName,"44636-scratch.xls");
+ out = new FileOutputStream(scratch);
+ wb.write(out);
+ out.close();
+ System.err.println("New file for bug #44636 written to " + scratch.toString());
+ }
+
+ /**
+ * Bug 44297: 32767+32768 is evaluated to -1
+ * Fix: IntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation
+ * if a formula has values in the interval [Short.MAX_VALUE, (Short.MAX_VALUE+1)*2]
+ *
+ * @author Yegor Kozlov
+ */
+ public void test44297() throws IOException {
+ FileInputStream in = new FileInputStream(new File(dirName, "44297.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(in);
+ in.close();
+
+ HSSFRow row;
+ HSSFCell cell;
+
+ HSSFSheet sheet = wb.getSheetAt(0);
+
+ HSSFFormulaEvaluator eva = new HSSFFormulaEvaluator(sheet, wb);
+
+ row = (HSSFRow)sheet.getRow(0);
+ cell = row.getCell((short)0);
+ assertEquals("31+46", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(77, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(1);
+ cell = row.getCell((short)0);
+ assertEquals("30+53", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(83, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(2);
+ cell = row.getCell((short)0);
+ assertEquals("SUM(A1:A2)", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(160, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(4);
+ cell = row.getCell((short)0);
+ assertEquals("32767+32768", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(65535, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(7);
+ cell = row.getCell((short)0);
+ assertEquals("32744+42333", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(75077, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(8);
+ cell = row.getCell((short)0);
+ assertEquals("327680.0/32768", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(10, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(9);
+ cell = row.getCell((short)0);
+ assertEquals("32767+32769", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(65536, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(10);
+ cell = row.getCell((short)0);
+ assertEquals("35000+36000", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(71000, eva.evaluate(cell).getNumberValue(), 0);
+
+ row = (HSSFRow)sheet.getRow(11);
+ cell = row.getCell((short)0);
+ assertEquals("-1000000.0-3000000.0", cell.getCellFormula());
+ eva.setCurrentRow(row);
+ assertEquals(-4000000, eva.evaluate(cell).getNumberValue(), 0);
+ }
+
+ /**
+ * Bug 44410: SUM(C:C) is valid in excel, and means a sum
+ * of all the rows in Column C
+ *
+ * @author Nick Burch
+ */
+ public void test44410() throws IOException {
+ FileInputStream in = new FileInputStream(new File(dirName, "SingleLetterRanges.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(in);
+ in.close();
+
+ HSSFSheet sheet = wb.getSheetAt(0);
+
+ HSSFFormulaEvaluator eva = new HSSFFormulaEvaluator(sheet, wb);
+
+ // =index(C:C,2,1) -> 2
+ HSSFRow rowIDX = (HSSFRow)sheet.getRow(3);
+ // =sum(C:C) -> 6
+ HSSFRow rowSUM = (HSSFRow)sheet.getRow(4);
+ // =sum(C:D) -> 66
+ HSSFRow rowSUM2D = (HSSFRow)sheet.getRow(5);
+
+ // Test the sum
+ HSSFCell cellSUM = rowSUM.getCell((short)0);
+
+ FormulaRecordAggregate frec =
+ (FormulaRecordAggregate)cellSUM.getCellValueRecord();
+ List ops = frec.getFormulaRecord().getParsedExpression();
+ assertEquals(2, ops.size());
+ assertEquals(AreaPtg.class, ops.get(0).getClass());
+ assertEquals(FuncVarPtg.class, ops.get(1).getClass());
+
+ // Actually stored as C1 to C65536
+ // (last row is -1 === 65535)
+ AreaPtg ptg = (AreaPtg)ops.get(0);
+ assertEquals(2, ptg.getFirstColumn());
+ assertEquals(2, ptg.getLastColumn());
+ assertEquals(0, ptg.getFirstRow());
+ assertEquals(65535, ptg.getLastRow());
+ assertEquals("C:C", ptg.toFormulaString(wb.getWorkbook()));
+
+ // Will show as C:C, but won't know how many
+ // rows it covers as we don't have the sheet
+ // to hand when turning the Ptgs into a string
+ assertEquals("SUM(C:C)", cellSUM.getCellFormula());
+ eva.setCurrentRow(rowSUM);
+
+ // But the evaluator knows the sheet, so it
+ // can do it properly
+ assertEquals(6, eva.evaluate(cellSUM).getNumberValue(), 0);
+
+
+ // Test the index
+ // Again, the formula string will be right but
+ // lacking row count, evaluated will be right
+ HSSFCell cellIDX = rowIDX.getCell((short)0);
+ assertEquals("INDEX(C:C,2,1)", cellIDX.getCellFormula());
+ eva.setCurrentRow(rowIDX);
+ assertEquals(2, eva.evaluate(cellIDX).getNumberValue(), 0);
+
+ // Across two colums
+ HSSFCell cellSUM2D = rowSUM2D.getCell((short)0);
+ assertEquals("SUM(C:D)", cellSUM2D.getCellFormula());
+ eva.setCurrentRow(rowSUM2D);
+ assertEquals(66, eva.evaluate(cellSUM2D).getNumberValue(), 0);
+ }
+
+ /**
+ * Tests that we can evaluate boolean cells properly
+ */
+ public void testEvaluateBooleanInCell_bug44508() {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet();
+ wb.setSheetName(0, "Sheet1");
+ HSSFRow row = sheet.createRow(0);
+ HSSFCell cell = row.createCell((short)0);
+
+ cell.setCellFormula("1=1");
+
+ HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
+ fe.setCurrentRow(row);
+ try {
+ fe.evaluateInCell(cell);
+ } catch (NumberFormatException e) {
+ fail("Identified bug 44508");
+ }
+ assertEquals(true, cell.getBooleanCellValue());
+ }
+}
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java
similarity index 100%
rename from src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java
rename to src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java