\r
/*$toオブジェクトにこのオブジェクトを適用させる関数*/\r
call: function() {\r
+ if (this.numList) {\r
+ var additive = [],\r
+ accumlate = [],\r
+ tu = this.underlying;\r
+ for (var i=0;i<this.numList.length;++i) {\r
+ /*0で配列を初期化しておく*/\r
+ additive[i] = accumlate[i] = 0;\r
+ }\r
+ tu.additive = additive;\r
+ tu.accumlate = accumlate;\r
+ }\r
/*文字部分の配置パターンは4通りあるので、ここでstrListを処理\r
* (1) a 0 の場合\r
* (2) 0 a\r
/*advanceメソッドで使われる有効数字の桁数 (小数点の桁数を決めるときに使う)*/\r
degit: 0,\r
\r
+ /*additve属性やaccumlate属性が設定された、累積アニメーションか、加法アニメーションで使われる*/\r
+ underlying: {\r
+ additive: [0],\r
+ accumlate: [0]\r
+ },\r
+ \r
/*advance メソッド\r
* アニメーションの進行具合を示す進捗率 t (0 <= t <= 1)をもとに、現在の呈示値を算出するためのもの\r
* callメソッドが前もって呼び出されていることが前提となる*/\r
numList = this.numList,\r
strList = this.strList,\r
fromNumList = this.from,\r
- deg = this.degit;\r
+ deg = this.degit,\r
+ underlying = this.underlying;\r
\r
for (var i=0,nuli=numList.length;i<nuli;++i) {\r
/*$fromと$toを、原点Oからの二つのベクトル (n次空間のベクトル)と考える*/\r
- str += ( t * numList[i] + (1 - t) * fromNumList[i] ).toFixed(deg);\r
+ str += ( t * numList[i] + (1 - t) * fromNumList[i] + underlying.additive[i] + underlying.accumlate[i]).toFixed(deg);\r
strList && ( str += strList[i+1] );\r
}\r
/*文字列はcallメソッドにより、a0aのパターンになっているので、aの部分を追加*/\r
expect( function() {\r
from.strList();\r
} ).toThrow();\r
+ \r
+ expect(from.underlying.additive[0]).toEqual(0);\r
+ expect(from.underlying.accumlate[0]).toEqual(0);\r
} );\r
/*同値分割をして、有効同値クラスを調べておく (Equivalence partitioning, the following is the valid partion)*/\r
it("should be this for the value (the valid partion)", function() {\r