From df3577e39bbb90ff5d4bbb9f935fdb3d29492dde Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sat, 29 Mar 2008 19:36:53 +0000 Subject: [PATCH] Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-639241,639243-639253,639255-639486,639488-639601,639603-639835,639837-639917,639919-640056,640058-640710,640712-641156,641158-641184,641186-641795,641797-641798,641800-641933,641935-641963,641965-641966,641968-641995,641997-642230,642232-642562,642564-642566,642568-642574,642576 via svnmerge from https://svn.apache.org/repos/asf/poi/trunk ........ r642566 | nick | 2008-03-29 17:45:28 +0000 (Sat, 29 Mar 2008) | 1 line Move the missing record aware eventusermodel code out of scratchpad ........ r642571 | nick | 2008-03-29 18:11:48 +0000 (Sat, 29 Mar 2008) | 1 line Merge several bug tests into one file ........ r642574 | nick | 2008-03-29 18:23:33 +0000 (Sat, 29 Mar 2008) | 1 line Move the FormulaEvaluator code out of scratchpad ........ git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@642591 13f79535-47bb-0310-9956-ffa450edef68 --- build.xml | 23 +- src/documentation/content/xdocs/changes.xml | 4 +- src/documentation/content/xdocs/status.xml | 4 +- .../MissingRecordAwareHSSFListener.java | 0 .../dummyrecord/LastCellOfRowDummyRecord.java | 0 .../dummyrecord/MissingCellDummyRecord.java | 0 .../dummyrecord/MissingRowDummyRecord.java | 0 .../poi/hssf/record/formula/eval/AddEval.java | 0 .../hssf/record/formula/eval/Area2DEval.java | 0 .../hssf/record/formula/eval/Area3DEval.java | 0 .../hssf/record/formula/eval/AreaEval.java | 0 .../hssf/record/formula/eval/BlankEval.java | 0 .../hssf/record/formula/eval/BoolEval.java | 0 .../hssf/record/formula/eval/ConcatEval.java | 0 .../hssf/record/formula/eval/DivideEval.java | 0 .../hssf/record/formula/eval/EqualEval.java | 0 .../hssf/record/formula/eval/ErrorEval.java | 0 .../poi/hssf/record/formula/eval/Eval.java | 0 .../formula/eval/EvaluationException.java | 0 .../record/formula/eval/ExternalFunction.java | 0 .../hssf/record/formula/eval/FuncVarEval.java | 0 .../record/formula/eval/FunctionEval.java | 0 .../record/formula/eval/GreaterEqualEval.java | 0 .../record/formula/eval/GreaterThanEval.java | 0 .../record/formula/eval/LessEqualEval.java | 0 .../record/formula/eval/LessThanEval.java | 0 .../record/formula/eval/MultiplyEval.java | 0 .../hssf/record/formula/eval/NameEval.java | 0 .../record/formula/eval/NotEqualEval.java | 0 .../hssf/record/formula/eval/NumberEval.java | 0 .../formula/eval/NumericOperationEval.java | 0 .../record/formula/eval/NumericValueEval.java | 0 .../record/formula/eval/OperandResolver.java | 0 .../record/formula/eval/OperationEval.java | 0 .../hssf/record/formula/eval/PercentEval.java | 0 .../hssf/record/formula/eval/PowerEval.java | 0 .../hssf/record/formula/eval/Ref2DEval.java | 0 .../hssf/record/formula/eval/Ref3DEval.java | 0 .../poi/hssf/record/formula/eval/RefEval.java | 0 .../formula/eval/RelationalOperationEval.java | 0 .../hssf/record/formula/eval/StringEval.java | 0 .../formula/eval/StringOperationEval.java | 0 .../record/formula/eval/StringValueEval.java | 0 .../record/formula/eval/SubtractEval.java | 0 .../record/formula/eval/UnaryMinusEval.java | 0 .../record/formula/eval/UnaryPlusEval.java | 0 .../hssf/record/formula/eval/ValueEval.java | 0 .../eval/ValueEvalToNumericXlator.java | 0 .../hssf/record/formula/functions/Abs.java | 0 .../hssf/record/formula/functions/Absref.java | 0 .../hssf/record/formula/functions/Acos.java | 0 .../hssf/record/formula/functions/Acosh.java | 0 .../record/formula/functions/Activecell.java | 0 .../record/formula/functions/Address.java | 0 .../hssf/record/formula/functions/And.java | 0 .../hssf/record/formula/functions/Areas.java | 0 .../record/formula/functions/Argument.java | 0 .../hssf/record/formula/functions/Asc.java | 0 .../hssf/record/formula/functions/Asin.java | 0 .../hssf/record/formula/functions/Asinh.java | 0 .../hssf/record/formula/functions/Atan.java | 0 .../hssf/record/formula/functions/Atan2.java | 0 .../hssf/record/formula/functions/Atanh.java | 0 .../hssf/record/formula/functions/Avedev.java | 0 .../record/formula/functions/Average.java | 0 .../record/formula/functions/Averagea.java | 0 .../record/formula/functions/Betadist.java | 0 .../record/formula/functions/Betainv.java | 0 .../record/formula/functions/Binomdist.java | 0 .../formula/functions/BooleanFunction.java | 0 .../hssf/record/formula/functions/Call.java | 0 .../hssf/record/formula/functions/Caller.java | 0 .../record/formula/functions/Ceiling.java | 0 .../hssf/record/formula/functions/Cell.java | 0 .../hssf/record/formula/functions/Char.java | 0 .../record/formula/functions/Chidist.java | 0 .../hssf/record/formula/functions/Chiinv.java | 0 .../record/formula/functions/Chitest.java | 0 .../hssf/record/formula/functions/Choose.java | 0 .../hssf/record/formula/functions/Clean.java | 0 .../hssf/record/formula/functions/Code.java | 0 .../hssf/record/formula/functions/Column.java | 0 .../record/formula/functions/Columns.java | 0 .../hssf/record/formula/functions/Combin.java | 0 .../record/formula/functions/Concatenate.java | 0 .../record/formula/functions/Confidence.java | 0 .../hssf/record/formula/functions/Correl.java | 0 .../hssf/record/formula/functions/Cos.java | 0 .../hssf/record/formula/functions/Cosh.java | 0 .../hssf/record/formula/functions/Count.java | 0 .../hssf/record/formula/functions/Counta.java | 0 .../record/formula/functions/Countblank.java | 0 .../record/formula/functions/Countif.java | 0 .../hssf/record/formula/functions/Covar.java | 0 .../record/formula/functions/Critbinom.java | 0 .../formula/functions/Customrepeat.java | 0 .../hssf/record/formula/functions/Date.java | 0 .../record/formula/functions/Datedif.java | 0 .../record/formula/functions/Datestring.java | 0 .../record/formula/functions/Datevalue.java | 0 .../record/formula/functions/Daverage.java | 0 .../hssf/record/formula/functions/Day.java | 0 .../record/formula/functions/Days360.java | 0 .../poi/hssf/record/formula/functions/Db.java | 0 .../hssf/record/formula/functions/Dbcs.java | 0 .../hssf/record/formula/functions/Dcount.java | 0 .../record/formula/functions/Dcounta.java | 0 .../hssf/record/formula/functions/Ddb.java | 0 .../record/formula/functions/Degrees.java | 0 .../hssf/record/formula/functions/Deref.java | 0 .../hssf/record/formula/functions/Devsq.java | 0 .../hssf/record/formula/functions/Dget.java | 0 .../hssf/record/formula/functions/Dmax.java | 0 .../hssf/record/formula/functions/Dmin.java | 0 .../hssf/record/formula/functions/Dollar.java | 0 .../record/formula/functions/Dproduct.java | 0 .../hssf/record/formula/functions/Dstdev.java | 0 .../record/formula/functions/Dstdevp.java | 0 .../hssf/record/formula/functions/Dsum.java | 0 .../hssf/record/formula/functions/Dvar.java | 0 .../hssf/record/formula/functions/Dvarp.java | 0 .../hssf/record/formula/functions/Echo.java | 0 .../hssf/record/formula/functions/Error.java | 0 .../record/formula/functions/Errortype.java | 0 .../record/formula/functions/Evaluate.java | 0 .../hssf/record/formula/functions/Even.java | 0 .../hssf/record/formula/functions/Exact.java | 0 .../hssf/record/formula/functions/Exec.java | 0 .../hssf/record/formula/functions/Exp.java | 0 .../record/formula/functions/Expondist.java | 0 .../hssf/record/formula/functions/Fact.java | 0 .../hssf/record/formula/functions/False.java | 0 .../hssf/record/formula/functions/Fdist.java | 0 .../hssf/record/formula/functions/Files.java | 0 .../formula/functions/FinanceFunction.java | 0 .../record/formula/functions/FinanceLib.java | 0 .../hssf/record/formula/functions/Find.java | 0 .../hssf/record/formula/functions/Findb.java | 0 .../hssf/record/formula/functions/Finv.java | 0 .../hssf/record/formula/functions/Fisher.java | 0 .../record/formula/functions/Fisherinv.java | 0 .../hssf/record/formula/functions/Fixed.java | 0 .../hssf/record/formula/functions/Floor.java | 0 .../record/formula/functions/Forecast.java | 0 .../formula/functions/Formulaconvert.java | 0 .../hssf/record/formula/functions/Fpos.java | 0 .../formula/functions/FreeRefFunction.java | 0 .../record/formula/functions/Frequency.java | 0 .../hssf/record/formula/functions/Ftest.java | 0 .../record/formula/functions/Function.java | 0 .../poi/hssf/record/formula/functions/Fv.java | 0 .../record/formula/functions/Gammadist.java | 0 .../record/formula/functions/Gammainv.java | 0 .../record/formula/functions/Gammaln.java | 0 .../record/formula/functions/Geomean.java | 0 .../hssf/record/formula/functions/Goto.java | 0 .../hssf/record/formula/functions/Group.java | 0 .../hssf/record/formula/functions/Growth.java | 0 .../hssf/record/formula/functions/Halt.java | 0 .../record/formula/functions/Harmean.java | 0 .../hssf/record/formula/functions/Help.java | 0 .../record/formula/functions/Hlookup.java | 0 .../hssf/record/formula/functions/Hour.java | 0 .../record/formula/functions/Hyperlink.java | 0 .../record/formula/functions/Hypgeomdist.java | 0 .../poi/hssf/record/formula/functions/If.java | 0 .../hssf/record/formula/functions/Index.java | 0 .../record/formula/functions/Indirect.java | 0 .../hssf/record/formula/functions/Info.java | 0 .../record/formula/functions/Initiate.java | 0 .../hssf/record/formula/functions/Input.java | 0 .../hssf/record/formula/functions/Int.java | 0 .../record/formula/functions/Intercept.java | 0 .../hssf/record/formula/functions/Ipmt.java | 0 .../hssf/record/formula/functions/Irr.java | 0 .../record/formula/functions/IsError.java | 0 .../hssf/record/formula/functions/IsNa.java | 0 .../record/formula/functions/Isblank.java | 0 .../hssf/record/formula/functions/Iserr.java | 0 .../record/formula/functions/Islogical.java | 0 .../record/formula/functions/Isnontext.java | 0 .../record/formula/functions/Isnumber.java | 0 .../hssf/record/formula/functions/Ispmt.java | 0 .../hssf/record/formula/functions/Isref.java | 0 .../hssf/record/formula/functions/Istext.java | 0 .../hssf/record/formula/functions/Kurt.java | 0 .../hssf/record/formula/functions/Large.java | 0 .../record/formula/functions/Lasterror.java | 0 .../hssf/record/formula/functions/Left.java | 0 .../hssf/record/formula/functions/Leftb.java | 0 .../hssf/record/formula/functions/Len.java | 0 .../hssf/record/formula/functions/Lenb.java | 0 .../hssf/record/formula/functions/Linest.java | 0 .../hssf/record/formula/functions/Links.java | 0 .../poi/hssf/record/formula/functions/Ln.java | 0 .../hssf/record/formula/functions/Log.java | 0 .../hssf/record/formula/functions/Log10.java | 0 .../hssf/record/formula/functions/Logest.java | 0 .../formula/functions/LogicalFunction.java | 0 .../hssf/record/formula/functions/Loginv.java | 0 .../record/formula/functions/Lognormdist.java | 0 .../hssf/record/formula/functions/Lookup.java | 0 .../record/formula/functions/LookupUtils.java | 0 .../hssf/record/formula/functions/Lower.java | 0 .../hssf/record/formula/functions/Match.java | 0 .../hssf/record/formula/functions/MathX.java | 0 .../hssf/record/formula/functions/Max.java | 0 .../hssf/record/formula/functions/Maxa.java | 0 .../record/formula/functions/Mdeterm.java | 0 .../hssf/record/formula/functions/Median.java | 0 .../hssf/record/formula/functions/Mid.java | 0 .../hssf/record/formula/functions/Midb.java | 0 .../hssf/record/formula/functions/Min.java | 0 .../hssf/record/formula/functions/Mina.java | 0 .../hssf/record/formula/functions/Minute.java | 0 .../record/formula/functions/Minverse.java | 0 .../hssf/record/formula/functions/Mirr.java | 0 .../hssf/record/formula/functions/Mmult.java | 0 .../hssf/record/formula/functions/Mod.java | 0 .../hssf/record/formula/functions/Mode.java | 0 .../hssf/record/formula/functions/Month.java | 0 .../MultiOperandNumericFunction.java | 0 .../poi/hssf/record/formula/functions/N.java | 0 .../poi/hssf/record/formula/functions/Na.java | 0 .../hssf/record/formula/functions/Names.java | 0 .../formula/functions/Negbinomdist.java | 0 .../record/formula/functions/Normdist.java | 0 .../record/formula/functions/Norminv.java | 0 .../record/formula/functions/Normsdist.java | 0 .../record/formula/functions/Normsinv.java | 0 .../hssf/record/formula/functions/Not.java | 0 .../functions/NotImplementedFunction.java | 0 .../hssf/record/formula/functions/Note.java | 0 .../hssf/record/formula/functions/Now.java | 0 .../hssf/record/formula/functions/Nper.java | 0 .../hssf/record/formula/functions/Npv.java | 0 .../formula/functions/Numberstring.java | 0 .../formula/functions/NumericFunction.java | 0 .../hssf/record/formula/functions/Odd.java | 0 .../hssf/record/formula/functions/Offset.java | 0 .../poi/hssf/record/formula/functions/Or.java | 0 .../record/formula/functions/Pearson.java | 0 .../record/formula/functions/Percentile.java | 0 .../record/formula/functions/Percentrank.java | 0 .../hssf/record/formula/functions/Permut.java | 0 .../poi/hssf/record/formula/functions/Pi.java | 0 .../hssf/record/formula/functions/Pmt.java | 0 .../record/formula/functions/Poisson.java | 0 .../hssf/record/formula/functions/Power.java | 0 .../hssf/record/formula/functions/Ppmt.java | 0 .../hssf/record/formula/functions/Prob.java | 0 .../record/formula/functions/Product.java | 0 .../hssf/record/formula/functions/Proper.java | 0 .../poi/hssf/record/formula/functions/Pv.java | 0 .../record/formula/functions/Quartile.java | 0 .../record/formula/functions/Radians.java | 0 .../hssf/record/formula/functions/Rand.java | 0 .../hssf/record/formula/functions/Rank.java | 0 .../hssf/record/formula/functions/Rate.java | 0 .../record/formula/functions/Reftext.java | 0 .../hssf/record/formula/functions/Relref.java | 0 .../record/formula/functions/Replace.java | 0 .../record/formula/functions/Replaceb.java | 0 .../hssf/record/formula/functions/Rept.java | 0 .../record/formula/functions/Request.java | 0 .../hssf/record/formula/functions/Result.java | 0 .../hssf/record/formula/functions/Right.java | 0 .../hssf/record/formula/functions/Rightb.java | 0 .../hssf/record/formula/functions/Roman.java | 0 .../hssf/record/formula/functions/Round.java | 0 .../record/formula/functions/Rounddown.java | 0 .../record/formula/functions/Roundup.java | 0 .../hssf/record/formula/functions/Row.java | 0 .../hssf/record/formula/functions/Rows.java | 0 .../hssf/record/formula/functions/Rsq.java | 0 .../hssf/record/formula/functions/Search.java | 0 .../record/formula/functions/Searchb.java | 0 .../hssf/record/formula/functions/Second.java | 0 .../hssf/record/formula/functions/Series.java | 0 .../record/formula/functions/Setname.java | 0 .../record/formula/functions/Setvalue.java | 0 .../hssf/record/formula/functions/Sign.java | 0 .../hssf/record/formula/functions/Sin.java | 0 .../hssf/record/formula/functions/Sinh.java | 0 .../hssf/record/formula/functions/Skew.java | 0 .../hssf/record/formula/functions/Sln.java | 0 .../hssf/record/formula/functions/Slope.java | 0 .../hssf/record/formula/functions/Small.java | 0 .../hssf/record/formula/functions/Sqrt.java | 0 .../record/formula/functions/Standardize.java | 0 .../record/formula/functions/StatsLib.java | 0 .../hssf/record/formula/functions/Stdev.java | 0 .../hssf/record/formula/functions/Stdeva.java | 0 .../hssf/record/formula/functions/Stdevp.java | 0 .../record/formula/functions/Stdevpa.java | 0 .../hssf/record/formula/functions/Step.java | 0 .../hssf/record/formula/functions/Steyx.java | 0 .../record/formula/functions/Substitute.java | 0 .../record/formula/functions/Subtotal.java | 0 .../hssf/record/formula/functions/Sum.java | 0 .../hssf/record/formula/functions/Sumif.java | 0 .../record/formula/functions/Sumproduct.java | 0 .../hssf/record/formula/functions/Sumsq.java | 0 .../record/formula/functions/Sumx2my2.java | 0 .../record/formula/functions/Sumx2py2.java | 0 .../record/formula/functions/Sumxmy2.java | 0 .../hssf/record/formula/functions/Syd.java | 0 .../poi/hssf/record/formula/functions/T.java | 0 .../hssf/record/formula/functions/Tan.java | 0 .../hssf/record/formula/functions/Tanh.java | 0 .../hssf/record/formula/functions/Tdist.java | 0 .../hssf/record/formula/functions/Text.java | 0 .../formula/functions/TextFunction.java | 0 .../record/formula/functions/Textref.java | 0 .../hssf/record/formula/functions/Time.java | 0 .../record/formula/functions/Timevalue.java | 0 .../hssf/record/formula/functions/Tinv.java | 0 .../hssf/record/formula/functions/Today.java | 0 .../record/formula/functions/Transpose.java | 0 .../hssf/record/formula/functions/Trend.java | 0 .../hssf/record/formula/functions/Trim.java | 0 .../record/formula/functions/Trimmean.java | 0 .../hssf/record/formula/functions/True.java | 0 .../hssf/record/formula/functions/Trunc.java | 0 .../hssf/record/formula/functions/Ttest.java | 0 .../hssf/record/formula/functions/Type.java | 0 .../hssf/record/formula/functions/Upper.java | 0 .../record/formula/functions/Usdollar.java | 0 .../hssf/record/formula/functions/Value.java | 0 .../hssf/record/formula/functions/Var.java | 0 .../hssf/record/formula/functions/Vara.java | 0 .../hssf/record/formula/functions/Varp.java | 0 .../hssf/record/formula/functions/Varpa.java | 0 .../hssf/record/formula/functions/Vdb.java | 0 .../record/formula/functions/Vlookup.java | 0 .../record/formula/functions/Volatile.java | 0 .../record/formula/functions/Weekday.java | 0 .../record/formula/functions/Weibull.java | 0 .../formula/functions/XYNumericFunction.java | 0 .../hssf/record/formula/functions/Year.java | 0 .../hssf/record/formula/functions/Ztest.java | 0 .../usermodel/EvaluationCycleDetector.java | 0 .../EvaluationCycleDetectorManager.java | 0 .../hssf/usermodel/HSSFFormulaEvaluator.java | 0 .../usermodel/OperationEvaluatorFactory.java | 0 .../poi/hssf/usermodel/TestBug44297.java | 103 ------- .../poi/hssf/usermodel/TestBug44410.java | 100 ------- .../poi/hssf/usermodel/TestBug44508.java | 42 --- .../usermodel/TestFormulaEvaluatorBugs.java | 88 ------ .../TestMissingRecordAwareHSSFListener.java | 0 .../hssf/model/TestFormulaParserEval.java} | 6 +- .../formula/eval/AllFormulaEvalTests.java | 0 .../formula/eval/TestCircularReferences.java | 0 .../formula/eval/TestExternalFunction.java | 0 .../record/formula/eval/TestFormulaBugs.java | 0 .../eval/TestFormulasFromSpreadsheet.java | 0 .../record/formula/eval/TestPercentEval.java | 0 .../formula/eval/TestUnaryPlusEval.java | 0 .../functions/AbstractNumericTestCase.java | 0 .../AllIndividualFunctionEvaluationTests.java | 0 .../record/formula/functions/EvalFactory.java | 0 .../functions/NumericFunctionInvoker.java | 0 .../record/formula/functions/TestAverage.java | 0 .../formula/functions/TestCountFuncs.java | 0 .../record/formula/functions/TestDate.java | 0 .../formula/functions/TestFinanceLib.java | 0 .../record/formula/functions/TestIndex.java | 0 .../record/formula/functions/TestIsBlank.java | 0 .../record/formula/functions/TestLen.java | 0 .../TestLookupFunctionsFromSpreadsheet.java | 0 .../record/formula/functions/TestMatch.java | 0 .../record/formula/functions/TestMathX.java | 0 .../record/formula/functions/TestMid.java | 0 .../record/formula/functions/TestOffset.java | 0 .../record/formula/functions/TestPmt.java | 0 .../formula/functions/TestRoundFuncs.java | 0 .../record/formula/functions/TestRowCol.java | 0 .../formula/functions/TestStatsLib.java | 0 .../formula/functions/TestSumproduct.java | 0 .../record/formula/functions/TestTFunc.java | 0 .../record/formula/functions/TestTrim.java | 0 .../functions/TestXYNumericFunction.java | 0 .../poi/hssf/usermodel/TestBug42464.java | 0 .../poi/hssf/usermodel/TestBug43093.java | 0 .../usermodel/TestFormulaEvaluatorBugs.java | 257 ++++++++++++++++++ .../usermodel/TestFormulaEvaluatorDocs.java | 0 386 files changed, 278 insertions(+), 349 deletions(-) rename src/{scratchpad/src => java}/org/apache/poi/hssf/eventusermodel/MissingRecordAwareHSSFListener.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/AddEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/Area2DEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/Area3DEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/AreaEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/BlankEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/BoolEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/ConcatEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/DivideEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/EqualEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/ErrorEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/Eval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/EvaluationException.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/ExternalFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/FuncVarEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/FunctionEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/GreaterEqualEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/GreaterThanEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/LessEqualEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/LessThanEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/MultiplyEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/NameEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/NotEqualEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/NumberEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/NumericOperationEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/NumericValueEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/OperandResolver.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/OperationEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/PercentEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/PowerEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/Ref3DEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/RefEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/RelationalOperationEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/StringEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/StringOperationEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/StringValueEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/SubtractEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/UnaryMinusEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/UnaryPlusEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/ValueEval.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/eval/ValueEvalToNumericXlator.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Abs.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Absref.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Acos.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Acosh.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Activecell.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Address.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/And.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Areas.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Argument.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Asc.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Asin.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Asinh.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Atan.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Atan2.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Atanh.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Avedev.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Average.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Averagea.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Betadist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Betainv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Binomdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/BooleanFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Call.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Caller.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ceiling.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Cell.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Char.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Chidist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Chiinv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Chitest.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Choose.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Clean.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Code.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Column.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Columns.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Combin.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Concatenate.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Confidence.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Correl.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Cos.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Cosh.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Count.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Counta.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Countblank.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Countif.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Covar.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Critbinom.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Customrepeat.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Date.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Datedif.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Datestring.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Datevalue.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Daverage.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Day.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Days360.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Db.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dbcs.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dcount.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dcounta.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ddb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Degrees.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Deref.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Devsq.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dget.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dmax.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dmin.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dollar.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dproduct.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dstdev.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dstdevp.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dsum.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dvar.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Dvarp.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Echo.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Error.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Errortype.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Evaluate.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Even.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Exact.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Exec.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Exp.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Expondist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fact.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/False.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Files.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/FinanceFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/FinanceLib.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Find.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Findb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Finv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fisher.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fisherinv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fixed.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Floor.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Forecast.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Formulaconvert.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fpos.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/FreeRefFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Frequency.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ftest.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Function.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Fv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Gammadist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Gammainv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Gammaln.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Geomean.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Goto.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Group.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Growth.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Halt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Harmean.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Help.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Hlookup.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Hour.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Hyperlink.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Hypgeomdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/If.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Index.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Indirect.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Info.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Initiate.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Input.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Int.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Intercept.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ipmt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Irr.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/IsError.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/IsNa.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Isblank.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Iserr.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Islogical.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Isnontext.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Isnumber.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ispmt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Isref.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Istext.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Kurt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Large.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Lasterror.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Left.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Leftb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Len.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Lenb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Linest.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Links.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ln.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Log.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Log10.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Logest.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/LogicalFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Loginv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Lognormdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Lookup.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/LookupUtils.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Lower.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Match.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/MathX.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Max.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Maxa.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mdeterm.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Median.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mid.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Midb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Min.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mina.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Minute.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Minverse.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mirr.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mmult.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mod.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Mode.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Month.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/MultiOperandNumericFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/N.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Na.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Names.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Negbinomdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Normdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Norminv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Normsdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Normsinv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Not.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/NotImplementedFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Note.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Now.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Nper.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Npv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Numberstring.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/NumericFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Odd.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Offset.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Or.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Pearson.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Percentile.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Percentrank.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Permut.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Pi.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Pmt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Poisson.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Power.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ppmt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Prob.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Product.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Proper.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Pv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Quartile.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Radians.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rand.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rank.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rate.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Reftext.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Relref.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Replace.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Replaceb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rept.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Request.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Result.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Right.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rightb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Roman.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Round.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rounddown.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Roundup.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Row.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rows.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Rsq.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Search.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Searchb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Second.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Series.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Setname.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Setvalue.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sign.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sin.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sinh.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Skew.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sln.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Slope.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Small.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sqrt.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Standardize.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/StatsLib.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Stdev.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Stdeva.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Stdevp.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Stdevpa.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Step.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Steyx.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Substitute.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Subtotal.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sum.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sumif.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sumproduct.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sumsq.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sumx2my2.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sumx2py2.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Sumxmy2.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Syd.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/T.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Tan.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Tanh.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Tdist.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Text.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/TextFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Textref.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Time.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Timevalue.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Tinv.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Today.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Transpose.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Trend.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Trim.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Trimmean.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/True.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Trunc.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ttest.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Type.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Upper.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Usdollar.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Value.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Var.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Vara.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Varp.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Varpa.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Vdb.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Vlookup.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Volatile.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Weekday.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Weibull.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/XYNumericFunction.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Year.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/record/formula/functions/Ztest.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/usermodel/EvaluationCycleDetector.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/usermodel/EvaluationCycleDetectorManager.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java (100%) rename src/{scratchpad/src => java}/org/apache/poi/hssf/usermodel/OperationEvaluatorFactory.java (100%) delete mode 100755 src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44297.java delete mode 100644 src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44410.java delete mode 100644 src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestBug44508.java delete mode 100644 src/scratchpad/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java rename src/{scratchpad => }/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java (100%) rename src/{scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java => testcases/org/apache/poi/hssf/model/TestFormulaParserEval.java} (96%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/AllFormulaEvalTests.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/TestCircularReferences.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/TestExternalFunction.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulaBugs.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulasFromSpreadsheet.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/AbstractNumericTestCase.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/AllIndividualFunctionEvaluationTests.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/NumericFunctionInvoker.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestAverage.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestFinanceLib.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestIndex.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestIsBlank.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestLen.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestLookupFunctionsFromSpreadsheet.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestMatch.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestMathX.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestOffset.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestRoundFuncs.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestRowCol.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestStatsLib.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestTrim.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/record/formula/functions/TestXYNumericFunction.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/usermodel/TestBug42464.java (100%) rename src/{scratchpad => }/testcases/org/apache/poi/hssf/usermodel/TestBug43093.java (100%) create mode 100644 src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java rename src/{scratchpad => }/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java (100%) 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