Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 2149 → Rev 2150

/trunk/api/js/dojo1.0/dojox/encoding/tests/ascii85.js
New file
0,0 → 1,35
if(!dojo._hasResource["dojox.encoding.tests.ascii85"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.ascii85"] = true;
dojo.provide("dojox.encoding.tests.ascii85");
dojo.require("dojox.encoding.ascii85");
 
(function(){
var msg1 = "The rain in Spain falls mainly on the plain.";
var msg2 = "The rain in Spain falls mainly on the plain.1";
var msg3 = "The rain in Spain falls mainly on the plain.ab";
var msg4 = "The rain in Spain falls mainly on the plain.!@#";
var dca = dojox.encoding.ascii85;
var s2b = function(s){
var b = [];
for(var i = 0; i < s.length; ++i){
b.push(s.charCodeAt(i));
}
return b;
};
 
var b2s = function(b){
var s = [];
dojo.forEach(b, function(c){ s.push(String.fromCharCode(c)); });
return s.join("");
};
 
tests.register("dojox.encoding.tests.ascii85", [
function testMsg1(t){ t.assertEqual(msg1, b2s(dca.decode(dca.encode(s2b(msg1))))); },
function testMsg2(t){ t.assertEqual(msg2, b2s(dca.decode(dca.encode(s2b(msg2))))); },
function testMsg3(t){ t.assertEqual(msg3, b2s(dca.decode(dca.encode(s2b(msg3))))); },
function testMsg4(t){ t.assertEqual(msg4, b2s(dca.decode(dca.encode(s2b(msg4))))); }
]);
})();
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/encoding.js
New file
0,0 → 1,15
if(!dojo._hasResource["dojox.encoding.tests.encoding"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.encoding"] = true;
dojo.provide("dojox.encoding.tests.encoding");
 
try{
dojo.require("dojox.encoding.tests.ascii85");
dojo.require("dojox.encoding.tests.easy64");
dojo.require("dojox.encoding.tests.bits");
dojo.require("dojox.encoding.tests.splay");
dojo.require("dojox.encoding.tests.lzw");
}catch(e){
doh.debug(e);
}
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/test.html
New file
0,0 → 1,61
<html>
<head>
<title>Test colors</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
@import "../../../dojo/resources/dojo.css";
@import "../../../dijit/tests/css/dijitTests.css";
.pane { margin-top: 2em; }
</style>
<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: true"></script>
<script type="text/javascript" src="colors2.js"></script>
<script type="text/javascript">
dojo.require("dojox.encoding.tests.colors");
//dojo.require("dojox.encoding.tests.colors2");
dojo.require("dojox.encoding.tests.colors3");
var dct = dojox.encoding.tests;
var test = function(c1, c2, result){
var empty = {};
for(var i in c1){
if(i in empty){ continue; }
if(!(i in c2)){
result.push("<div>" + i + " is missing.</div>");
continue;
}
var v1 = c1[i], v2 = c2[i];
if(v1[0] != v2[0] || v1[1] != v2[1] || v1[2] != v2[2]){
result.push("<div>" + i + " doesn't match.</div>");
continue;
}
result.push("<div style='color: green'>" + i + " is ok.</div>");
}
};
var run = function(){
var result = [];
result.push("<p><strong>Comparing colors to colors3.</strong></p>");
test(dct.colors, dct.colors3, result);
result.push("<p><strong>Comparing colors3 to colors.</strong></p>");
test(dct.colors3, dct.colors, result);
/*
result.push("<p><strong>Comparing colors to colors2.</strong></p>");
test(dct.colors, dct.colors2, result);
result.push("<p><strong>Comparing colors2 to colors.</strong></p>");
test(dct.colors2, dct.colors, result);
*/
dojo.byId("status").innerHTML = result.join("\n");
};
dojo.addOnLoad(function(){
dojo.connect(dojo.byId("run"), "onclick", run);
});
</script>
</head>
<body>
<h1>Test colors</h1>
<p><button id="run">Run</button></p>
<div id="status" class="pane"><em>No status yet.</em></div>
</body>
</html>
/trunk/api/js/dojo1.0/dojox/encoding/tests/splay.js
New file
0,0 → 1,49
if(!dojo._hasResource["dojox.encoding.tests.splay"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.splay"] = true;
dojo.provide("dojox.encoding.tests.splay");
dojo.require("dojox.encoding.splay");
dojo.require("dojox.encoding.bits");
 
(function(){
var msg1 = "The rain in Spain falls mainly on the plain.";
var msg2 = "The rain in Spain falls mainly on the plain.1";
var msg3 = "The rain in Spain falls mainly on the plain.ab";
var msg4 = "The rain in Spain falls mainly on the plain.!@#";
var dc = dojox.encoding, dcb = dc.bits;
var s2b = function(s){
var b = [];
for(var i = 0; i < s.length; ++i){
b.push(s.charCodeAt(i));
}
return b;
};
 
var b2s = function(b){
var s = [];
dojo.forEach(b, function(c){ s.push(String.fromCharCode(c)); });
return s.join("");
};
var encode = function(msg){
var x = new dcb.OutputStream(), encoder = new dc.Splay(256);
dojo.forEach(s2b(msg), function(v){ encoder.encode(v, x); });
console.debug("bits =", x.getWidth());
return x.getBuffer();
};
var decode = function(n, buf){
var x = new dcb.InputStream(buf, buf.length * 8), decoder = new dc.Splay(256), t = [];
for(var i = 0; i < n; ++i){ t.push(decoder.decode(x)); }
return b2s(t);
};
 
tests.register("dojox.encoding.tests.splay", [
function testSplayMsg1(t){ t.assertEqual(msg1, decode(msg1.length, encode(msg1))); },
function testSplayMsg2(t){ t.assertEqual(msg2, decode(msg2.length, encode(msg2))); },
function testSplayMsg3(t){ t.assertEqual(msg3, decode(msg3.length, encode(msg3))); },
function testSplayMsg4(t){ t.assertEqual(msg4, decode(msg4.length, encode(msg4))); }
]);
})();
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/colors2.html
New file
0,0 → 1,104
<html>
<head>
<title>Compress colors</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
@import "../../../dojo/resources/dojo.css";
@import "../../../dijit/tests/css/dijitTests.css";
.pane { margin-top: 2em; }
</style>
<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: true"></script>
<script type="text/javascript">
dojo.require("dojox.encoding.tests.colors");
dojo.require("dojox.encoding.ascii85");
dojo.require("dojox.encoding.bits");
dojo.require("dojox.encoding.splay");
dojo.require("dojox.encoding.lzw");
var dc = dojox.encoding, colors = dc.tests.colors;
var run = function(){
var empty = {}, names = [];
for(var i in colors){
if(i in empty){ continue; }
names.push(i);
}
names.sort();
var output = new dc.bits.OutputStream(), result = [];
// encode names
var s = names.join("{"), encoder = new dc.lzw.Encoder(27);
result.push("<div>Input is " + s.length + " bytes long.</div>");
result.push("<div>Input: " + s + ".</div>");
for(var i = 0; i < s.length; ++i){
var v = s.charCodeAt(i) - 97;
if(v < 0 || v > 26) console.debug("error!", v);
encoder.encode(v, output);
}
encoder.flush(output);
var w = output.getWidth();
result.push("<div>Output is " + Math.ceil(w / 8) + " bytes (" + w + " bits) long.</div>");
var buf = output.getBuffer();
{
var input = new dc.bits.InputStream(buf, buf.length * 8), decoder = new dc.lzw.Decoder(27);
var t = [];
for(var w = 0; w < s.length;){
var v = decoder.decode(input);
t.push(v);
w += v.length;
}
t = t.join("");
var p = [];
for(var i = 0; i < t.length; ++i){
p.push(String.fromCharCode(t.charCodeAt(i) + 97));
}
p = p.join("");
result.push("<div>Control: " + p + ".</div>");
}
while(buf.length % 4){ buf.push(0); }
var a85 = dc.ascii85.encode(buf);
result.push("<div>Encoded output is " + a85.length + " bytes.</div>");
result.push("<div><textarea>" + a85 + "</textarea></div>");
// test
{
var buf = dc.ascii85.decode(a85);
var input = new dc.bits.InputStream(buf, buf.length * 8), decoder = new dc.lzw.Decoder(27);
var t = [];
for(var w = 0; w < s.length;){
var v = decoder.decode(input);
t.push(v);
w += v.length;
}
t = t.join("");
var p = [];
for(var i = 0; i < t.length; ++i){
p.push(String.fromCharCode(t.charCodeAt(i) + 97));
}
p = p.join("");
result.push("<div>Control: " + p + ".</div>");
}
// encode values
buf = [];
for(var i = 0; i < names.length; ++i){
var c = colors[names[i]];
buf.push(c[0], c[1], c[2]);
}
result.push("<div>Output is " + buf.length + " bytes long.</div>");
while(buf.length % 4){ buf.push(0); }
a85 = dc.ascii85.encode(buf);
result.push("<div>Encoded output is " + a85.length + " bytes.</div>");
result.push("<div><textarea>" + a85 + "</textarea></div>");
dojo.byId("status").innerHTML = result.join("\n");
};
dojo.addOnLoad(function(){
dojo.connect(dojo.byId("run"), "onclick", run);
});
</script>
</head>
<body>
<h1>Compress colors</h1>
<p><button id="run">Run</button></p>
<div id="status" class="pane"><em>No status yet.</em></div>
</body>
</html>
/trunk/api/js/dojo1.0/dojox/encoding/tests/easy64.js
New file
0,0 → 1,35
if(!dojo._hasResource["dojox.encoding.tests.easy64"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.easy64"] = true;
dojo.provide("dojox.encoding.tests.easy64");
dojo.require("dojox.encoding.easy64");
 
(function(){
var msg1 = "The rain in Spain falls mainly on the plain.";
var msg2 = "The rain in Spain falls mainly on the plain.1";
var msg3 = "The rain in Spain falls mainly on the plain.ab";
var msg4 = "The rain in Spain falls mainly on the plain.!@#";
var dce = dojox.encoding.easy64;
var s2b = function(s){
var b = [];
for(var i = 0; i < s.length; ++i){
b.push(s.charCodeAt(i));
}
return b;
};
 
var b2s = function(b){
var s = [];
dojo.forEach(b, function(c){ s.push(String.fromCharCode(c)); });
return s.join("");
};
 
tests.register("dojox.encoding.tests.easy64", [
function testEasyMsg1(t){ t.assertEqual(msg1, b2s(dce.decode(dce.encode(s2b(msg1))))); },
function testEasyMsg2(t){ t.assertEqual(msg2, b2s(dce.decode(dce.encode(s2b(msg2))))); },
function testEasyMsg3(t){ t.assertEqual(msg3, b2s(dce.decode(dce.encode(s2b(msg3))))); },
function testEasyMsg4(t){ t.assertEqual(msg4, b2s(dce.decode(dce.encode(s2b(msg4))))); }
]);
})();
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/colors3.html
New file
0,0 → 1,104
<html>
<head>
<title>Compress colors</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
@import "../../../dojo/resources/dojo.css";
@import "../../../dijit/tests/css/dijitTests.css";
.pane { margin-top: 2em; }
</style>
<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: true"></script>
<script type="text/javascript">
dojo.require("dojox.encoding.tests.colors");
dojo.require("dojox.encoding.easy64");
dojo.require("dojox.encoding.bits");
dojo.require("dojox.encoding.splay");
dojo.require("dojox.encoding.lzw");
var dc = dojox.encoding, colors = dc.tests.colors;
var run = function(){
var empty = {}, names = [];
for(var i in colors){
if(i in empty){ continue; }
names.push(i);
}
names.sort();
var output = new dc.bits.OutputStream(), result = [];
// encode names
var s = names.join("{"), encoder = new dc.lzw.Encoder(27);
result.push("<div>Input is " + s.length + " bytes long.</div>");
result.push("<div>Input: " + s + ".</div>");
for(var i = 0; i < s.length; ++i){
var v = s.charCodeAt(i) - 97;
if(v < 0 || v > 26) console.debug("error!", v);
encoder.encode(v, output);
}
encoder.flush(output);
var w = output.getWidth();
result.push("<div>Output is " + Math.ceil(w / 8) + " bytes (" + w + " bits) long.</div>");
var buf = output.getBuffer();
{
var input = new dc.bits.InputStream(buf, buf.length * 8), decoder = new dc.lzw.Decoder(27);
var t = [];
for(var w = 0; w < s.length;){
var v = decoder.decode(input);
t.push(v);
w += v.length;
}
t = t.join("");
var p = [];
for(var i = 0; i < t.length; ++i){
p.push(String.fromCharCode(t.charCodeAt(i) + 97));
}
p = p.join("");
result.push("<div>Control: " + p + ".</div>");
}
while(buf.length % 3){ buf.push(0); }
var e64 = dc.easy64.encode(buf);
result.push("<div>Encoded output is " + e64.length + " bytes.</div>");
result.push("<div><textarea>" + e64 + "</textarea></div>");
// test
{
var buf = dc.easy64.decode(e64);
var input = new dc.bits.InputStream(buf, buf.length * 8), decoder = new dc.lzw.Decoder(27);
var t = [];
for(var w = 0; w < s.length;){
var v = decoder.decode(input);
t.push(v);
w += v.length;
}
t = t.join("");
var p = [];
for(var i = 0; i < t.length; ++i){
p.push(String.fromCharCode(t.charCodeAt(i) + 97));
}
p = p.join("");
result.push("<div>Control: " + p + ".</div>");
}
// encode values
buf = [];
for(var i = 0; i < names.length; ++i){
var c = colors[names[i]];
buf.push(c[0], c[1], c[2]);
}
result.push("<div>Output is " + buf.length + " bytes long.</div>");
while(buf.length % 4){ buf.push(0); }
e64 = dc.easy64.encode(buf);
result.push("<div>Encoded output is " + e64.length + " bytes.</div>");
result.push("<div><textarea>" + e64 + "</textarea></div>");
dojo.byId("status").innerHTML = result.join("\n");
};
dojo.addOnLoad(function(){
dojo.connect(dojo.byId("run"), "onclick", run);
});
</script>
</head>
<body>
<h1>Compress colors</h1>
<p><button id="run">Run</button></p>
<div id="status" class="pane"><em>No status yet.</em></div>
</body>
</html>
/trunk/api/js/dojo1.0/dojox/encoding/tests/lzw.js
New file
0,0 → 1,54
if(!dojo._hasResource["dojox.encoding.tests.lzw"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.lzw"] = true;
dojo.provide("dojox.encoding.tests.lzw");
dojo.require("dojox.encoding.lzw");
dojo.require("dojox.encoding.bits");
 
(function(){
var msg1 = "The rain in Spain falls mainly on the plain.";
var msg2 = "The rain in Spain falls mainly on the plain.1";
var msg3 = "The rain in Spain falls mainly on the plain.ab";
var msg4 = "The rain in Spain falls mainly on the plain.!@#";
var dc = dojox.encoding, dcb = dc.bits, dcl = dc.lzw;
var s2b = function(s){
var b = [];
for(var i = 0; i < s.length; ++i){
b.push(s.charCodeAt(i));
}
return b;
};
 
var b2s = function(b){
var s = [];
dojo.forEach(b, function(c){ s.push(String.fromCharCode(c)); });
return s.join("");
};
var encode = function(msg){
var x = new dcb.OutputStream(), encoder = new dcl.Encoder(128);
dojo.forEach(s2b(msg), function(v){ encoder.encode(v, x); });
encoder.flush(x);
console.debug("bits =", x.getWidth());
return x.getBuffer();
};
var decode = function(n, buf){
var x = new dcb.InputStream(buf, buf.length * 8), decoder = new dcl.Decoder(128), t = [], w = 0;
while(w < n){
var v = decoder.decode(x);
t.push(v);
w += v.length;
}
return t.join("");
};
 
tests.register("dojox.encoding.tests.lzw", [
function testLzwMsg1(t){ t.assertEqual(msg1, decode(msg1.length, encode(msg1))); },
function testLzwMsg2(t){ t.assertEqual(msg2, decode(msg2.length, encode(msg2))); },
function testLzwMsg3(t){ t.assertEqual(msg3, decode(msg3.length, encode(msg3))); },
function testLzwMsg4(t){ t.assertEqual(msg4, decode(msg4.length, encode(msg4))); }
]);
})();
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/vq.html
New file
0,0 → 1,185
<html>
<head>
<title>Compress colors using VQ</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
@import "../../../dojo/resources/dojo.css";
@import "../../../dijit/tests/css/dijitTests.css";
.pane { margin-top: 2em; }
</style>
<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: true"></script>
<script type="text/javascript">
dojo.require("dojox.encoding.tests.colors");
dojo.require("dojox.encoding.splay");
dojo.require("dojox.encoding.bits");
var colors = dojox.encoding.tests.colors;
var dist = function(a, b){
var r = a[0] - b[0], g = a[1] - b[1], b = a[2] - b[2];
return r * r + g * g + b * b;
};
var hexcolor = function(c){
return "#" + (c[0] < 16 ? "0" : "") + c[0].toString(16) +
(c[1] < 16 ? "0" : "") + c[1].toString(16) +
(c[2] < 16 ? "0" : "") + c[2].toString(16);
};
var maxdist = function(a, b, maxdist){
var r = Math.abs(a[0] - b[0]), g = Math.abs(a[1] - b[1]), b = Math.abs(a[2] - b[2]);
++maxdist[bits(r)];
++maxdist[bits(g)];
++maxdist[bits(b)];
};
var encodeColor = function(a, b, splay, stream){
var r = a[0] - b[0], g = a[1] - b[1], b = a[2] - b[2];
stream.putBits(r < 0 ? 1 : 0, 1);
splay.encode(Math.abs(r), stream);
stream.putBits(g < 0 ? 1 : 0, 1);
splay.encode(Math.abs(g), stream);
stream.putBits(b < 0 ? 1 : 0, 1);
splay.encode(Math.abs(b), stream);
};
var bits = function(x){
var w = 1;
for(var v = 2; x >= v; v <<= 1, ++w);
return w;
};
var runVQ = function(n){
dojo.byId("status").innerHTML = "<em>Initializing...</em>";
dojo.byId("report").innerHTML = "<em>Running VQ...</em>";
var clusters = [];
// select initial cluster centers
var empty = {};
for(var i in colors){
if(i in empty){ continue; }
clusters.push({center: colors[i]});
if(clusters.length == n){ break; }
}
/*
for(var i = 0; i < n; ++i){
var r = Math.floor(Math.random() * 256), g = Math.floor(Math.random() * 256), b = Math.floor(Math.random() * 256);
clusters.push({center: [r, g, b]});
}
*/
// do runs
dojo.byId("status").innerHTML = "<div>Starting runs...</div>";
var jitter = 0, niter = 1;
do {
// save previous centers
var old_clusters = [];
dojo.forEach(clusters, function(c){ old_clusters.push({center: c.center}); c.members = []; });
// assign colors to clusters
for(var i in colors){
if(i in empty){ continue; }
var c = colors[i], k = -1, kd = Number.MAX_VALUE;
for(var j = 0; j < clusters.length; ++j){
var jd = dist(clusters[j].center, c);
if(jd < kd){ k = j, kd = jd; }
}
clusters[k].members.push(i);
}
// recalculate cluster centers
for(var i = 0; i < clusters.length; ++i){
if(!clusters[i].members.length){ continue; }
var r = 0, g = 0, b = 0;
dojo.forEach(clusters[i].members, function(name){
var c = colors[name];
r += c[0];
g += c[1];
b += c[2];
});
r = Math.round(r / clusters[i].members.length);
g = Math.round(g / clusters[i].members.length);
b = Math.round(b / clusters[i].members.length);
clusters[i].center = [r, g, b];
}
// calculate the jitter
jitter = 0;
for(var i = 0; i < clusters.length; ++i){
jitter = Math.max(jitter, dist(clusters[i].center, old_clusters[i].center));
}
var node = dojo.doc.createElement("div");
node.innerHTML = "Run #" + niter + ", jitter = " + jitter;
dojo.byId("status").appendChild(node);
++niter;
}while(jitter > 1 && niter < 1000);
// calculate the required number of bytes
var output = new dojox.encoding.bits.OutputStream(),
splay = new dojox.encoding.Splay(256);
for(var i = 0; i < clusters.length; ++i){
var c = clusters[i], m = c.members, d = 0, ol = output.getWidth();
output.putBits(c.center[0], 8);
output.putBits(c.center[1], 8);
output.putBits(c.center[2], 8);
splay.init();
c.maxdist = [0, 0, 0, 0, 0, 0, 0, 0, 0];
for(var j = 0; j < m.length; ++j){
var color = colors[m[j]];
maxdist(c.center, color, c.maxdist);
encodeColor(c.center, color, splay, output);
}
c.bits = output.getWidth() - ol;
}
var node = dojo.doc.createElement("div");
node.innerHTML = "Required " + Math.ceil(output.getWidth() / 8) + " bytes";
dojo.byId("status").appendChild(node);
// generate color tables
var reps = [];
for(var i = 0; i < clusters.length; ++i){
var c = clusters[i], m = c.members;
reps.push("<p>Cluster #" + i + " contains " + m.length + " members. Length histogram:");
for(var j = 0; j < c.maxdist.length; ++j){
if(c.maxdist[j]){
reps.push(" " + j + "&mdash;" + c.maxdist[j]);
}
}
reps.push(". It requires " + c.bits + " bits (" + Math.ceil(c.bits / 8) + " bytes) to be encoded.</p>");
reps.push("<table>");
var wd = dist([255,255,255], c.center), bd = dist([0,0,0], c.center);
reps.push("<tr><td style='background: " + hexcolor(c.center) + "; color: " +
(wd < bd ? "black" : "white") + "'><strong>CENTER</strong></td><td>" +
c.center[0] + "</td><td>" + c.center[1] + "</td><td>" + c.center[2] + "</td></tr>");
for(var j = 0; j < m.length; ++j){
var color = colors[m[j]];
wd = dist([255,255,255], color);
bd = dist([0,0,0], color);
reps.push("<tr><td style='background: " + m[j] + "; color: " +
(wd < bd ? "black" : "white") + "'><strong>" + m[j] + "</strong></td><td>" +
color[0] + "</td><td>" + color[1] + "</td><td>" + color[2] + "</td></tr>");
}
reps.push("</table>");
}
dojo.byId("report").innerHTML = reps.join("\n");
};
run = function(){
var n = parseInt(dojo.byId("ncluster").value);
runVQ(n);
};
dojo.addOnLoad(function(){
dojo.connect(dojo.byId("run"), "onclick", run);
});
</script>
</head>
<body>
<h1>Compress colors using VQ</h1>
<p>Select desirable number of clusters:&nbsp;<select id="ncluster">
<option value="1">1</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="8">8</option>
<option value="16">16</option>
<option value="32">32</option>
<option value="64">64</option>
</select>&nbsp;<button id="run">Run</button></p>
<div id="status" class="pane"><em>No status yet.</em></div>
<div id="report" class="pane"><em>No results yet.</em></div>
</body>
</html>
/trunk/api/js/dojo1.0/dojox/encoding/tests/runTests.html
New file
0,0 → 1,9
<html>
<head>
<title>DojoX Compression Unit Test Runner</title>
<meta http-equiv="REFRESH" content="0;url=../../../util/doh/runner.html?testModule=dojox.encoding.tests.encoding" />
</head>
<body>
<p>Redirecting to D.O.H runner.</p>
</body>
</html>
/trunk/api/js/dojo1.0/dojox/encoding/tests/bits.js
New file
0,0 → 1,74
if(!dojo._hasResource["dojox.encoding.tests.bits"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.bits"] = true;
dojo.provide("dojox.encoding.tests.bits");
dojo.require("dojox.encoding.bits");
 
(function(){
var msg1 = "The rain in Spain falls mainly on the plain.";
var msg2 = "The rain in Spain falls mainly on the plain.1";
var msg3 = "The rain in Spain falls mainly on the plain.ab";
var msg4 = "The rain in Spain falls mainly on the plain.!@#";
var dcb = dojox.encoding.bits;
var s2b = function(s){
var b = [];
for(var i = 0; i < s.length; ++i){
b.push(s.charCodeAt(i));
}
return b;
};
 
var b2s = function(b){
var s = [];
dojo.forEach(b, function(c){ s.push(String.fromCharCode(c)); });
return s.join("");
};
var testOut = function(msg){
var a = new dojox.encoding.bits.OutputStream();
for(var i = 0; i < msg.length; ++i){
var v = msg.charCodeAt(i);
var j = Math.floor(Math.random() * 7) + 1;
a.putBits(v >>> (8 - j), j);
a.putBits(v, 8 - j);
}
return b2s(a.getBuffer());
};
 
var testIn = function(msg){
var a = new dojox.encoding.bits.InputStream(s2b(msg), msg.length * 8);
var r = [];
for(var i = 0; i < msg.length; ++i){
var j = Math.floor(Math.random() * 7) + 1;
r.push((a.getBits(j) << (8 - j)) | a.getBits(8 - j));
}
return b2s(r);
};
var test = function(msg){
var a = new dojox.encoding.bits.InputStream(s2b(msg), msg.length * 8);
var o = new dojox.encoding.bits.OutputStream();
while(a.getWidth() > 0){
var w = Math.min(a.getWidth(), 3);
o.putBits(a.getBits(w), w);
}
return b2s(o.getBuffer());
};
 
tests.register("dojox.encoding.tests.bits", [
function testBitsOut1(t){ t.assertEqual(msg1, testOut(msg1)); },
function testBitsOut2(t){ t.assertEqual(msg2, testOut(msg2)); },
function testBitsOut3(t){ t.assertEqual(msg3, testOut(msg3)); },
function testBitsOut4(t){ t.assertEqual(msg4, testOut(msg4)); },
function testBitsIn1(t){ t.assertEqual(msg1, testIn(msg1)); },
function testBitsIn2(t){ t.assertEqual(msg2, testIn(msg2)); },
function testBitsIn3(t){ t.assertEqual(msg3, testIn(msg3)); },
function testBitsIn4(t){ t.assertEqual(msg4, testIn(msg4)); },
function testBits1(t){ t.assertEqual(msg1, test(msg1)); },
function testBits2(t){ t.assertEqual(msg2, test(msg2)); },
function testBits3(t){ t.assertEqual(msg3, test(msg3)); },
function testBits4(t){ t.assertEqual(msg4, test(msg4)); }
]);
})();
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/colors.js
New file
0,0 → 1,156
if(!dojo._hasResource["dojox.encoding.tests.colors"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.colors"] = true;
dojo.provide("dojox.encoding.tests.colors");
 
// all CSS3 colors
dojox.encoding.tests.colors = {
aliceblue: [240,248,255],
antiquewhite: [250,235,215],
aqua: [0,255,255],
aquamarine: [127,255,212],
azure: [240,255,255],
beige: [245,245,220],
bisque: [255,228,196],
black: [0,0,0],
blanchedalmond: [255,235,205],
blue: [0,0,255],
blueviolet: [138,43,226],
brown: [165,42,42],
burlywood: [222,184,135],
cadetblue: [95,158,160],
chartreuse: [127,255,0],
chocolate: [210,105,30],
coral: [255,127,80],
cornflowerblue: [100,149,237],
cornsilk: [255,248,220],
crimson: [220,20,60],
cyan: [0,255,255],
darkblue: [0,0,139],
darkcyan: [0,139,139],
darkgoldenrod: [184,134,11],
darkgray: [169,169,169],
darkgreen: [0,100,0],
darkgrey: [169,169,169],
darkkhaki: [189,183,107],
darkmagenta: [139,0,139],
darkolivegreen: [85,107,47],
darkorange: [255,140,0],
darkorchid: [153,50,204],
darkred: [139,0,0],
darksalmon: [233,150,122],
darkseagreen: [143,188,143],
darkslateblue: [72,61,139],
darkslategray: [47,79,79],
darkslategrey: [47,79,79],
darkturquoise: [0,206,209],
darkviolet: [148,0,211],
deeppink: [255,20,147],
deepskyblue: [0,191,255],
dimgray: [105,105,105],
dimgrey: [105,105,105],
dodgerblue: [30,144,255],
firebrick: [178,34,34],
floralwhite: [255,250,240],
forestgreen: [34,139,34],
fuchsia: [255,0,255],
gainsboro: [220,220,220],
ghostwhite: [248,248,255],
gold: [255,215,0],
goldenrod: [218,165,32],
gray: [128,128,128],
green: [0,128,0],
greenyellow: [173,255,47],
grey: [128,128,128],
honeydew: [240,255,240],
hotpink: [255,105,180],
indianred: [205,92,92],
indigo: [75,0,130],
ivory: [255,255,240],
khaki: [240,230,140],
lavender: [230,230,250],
lavenderblush: [255,240,245],
lawngreen: [124,252,0],
lemonchiffon: [255,250,205],
lightblue: [173,216,230],
lightcoral: [240,128,128],
lightcyan: [224,255,255],
lightgoldenrodyellow: [250,250,210],
lightgray: [211,211,211],
lightgreen: [144,238,144],
lightgrey: [211,211,211],
lightpink: [255,182,193],
lightsalmon: [255,160,122],
lightseagreen: [32,178,170],
lightskyblue: [135,206,250],
lightslategray: [119,136,153],
lightslategrey: [119,136,153],
lightsteelblue: [176,196,222],
lightyellow: [255,255,224],
lime: [0,255,0],
limegreen: [50,205,50],
linen: [250,240,230],
magenta: [255,0,255],
maroon: [128,0,0],
mediumaquamarine: [102,205,170],
mediumblue: [0,0,205],
mediumorchid: [186,85,211],
mediumpurple: [147,112,219],
mediumseagreen: [60,179,113],
mediumslateblue: [123,104,238],
mediumspringgreen: [0,250,154],
mediumturquoise: [72,209,204],
mediumvioletred: [199,21,133],
midnightblue: [25,25,112],
mintcream: [245,255,250],
mistyrose: [255,228,225],
moccasin: [255,228,181],
navajowhite: [255,222,173],
navy: [0,0,128],
oldlace: [253,245,230],
olive: [128,128,0],
olivedrab: [107,142,35],
orange: [255,165,0],
orangered: [255,69,0],
orchid: [218,112,214],
palegoldenrod: [238,232,170],
palegreen: [152,251,152],
paleturquoise: [175,238,238],
palevioletred: [219,112,147],
papayawhip: [255,239,213],
peachpuff: [255,218,185],
peru: [205,133,63],
pink: [255,192,203],
plum: [221,160,221],
powderblue: [176,224,230],
purple: [128,0,128],
red: [255,0,0],
rosybrown: [188,143,143],
royalblue: [65,105,225],
saddlebrown: [139,69,19],
salmon: [250,128,114],
sandybrown: [244,164,96],
seagreen: [46,139,87],
seashell: [255,245,238],
sienna: [160,82,45],
silver: [192,192,192],
skyblue: [135,206,235],
slateblue: [106,90,205],
slategray: [112,128,144],
slategrey: [112,128,144],
snow: [255,250,250],
springgreen: [0,255,127],
steelblue: [70,130,180],
tan: [210,180,140],
teal: [0,128,128],
thistle: [216,191,216],
tomato: [255,99,71],
turquoise: [64,224,208],
violet: [238,130,238],
wheat: [245,222,179],
white: [255,255,255],
whitesmoke: [245,245,245],
yellow: [255,255,0],
yellowgreen: [154,205,50]
};
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/colors2.js
New file
0,0 → 1,64
if(!dojo._hasResource["dojox.encoding.tests.colors2"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.colors2"] = true;
dojo.provide("dojox.encoding.tests.colors2");
 
// all CSS3 colors
dojox.encoding.tests.colors2 = {};
 
(function(){
var n = "!mi-='%@Md%8;F\"=E5(:$@nHf!(;HYAOL),#XJKa#UHDMYQ0@q6C8='JBa#m1`YRS;3_\\P=@.(bN\\!)0d:Nar*Fo]]G`\\[X7Cb@r#pc;D3!k*8^\"bS8DAYbu'J5[`7Fh5S1e8`@1^N\"n8R:+ZQt]Ab.S>NP-jkO\"N$oQpbVbYtZl1&rSs%_;'!e8\"ij:*R!%9&P.+o0%cF&0F<\"eWn+rm!a<(02!d\\-J\\O@`K![IaPrqh6H4S!U<Nh]PS,\"!C;0W&Y]X[<[E&`1gQ?_;g\\mbQn^c!eV!05V['T@)Lio1O0QV>7CU!\"5jICR2\\X?!FilaO:$aE\"G1NIfMJ<.)1d;?OH9VU%LiGhi9=d?$EjW!BM0)1mGfg@\"os1\\E*A>+>YdjUK:P>T'7tj.UQ?<89]$:\\Li]GF*H8o*Z,o]Q_E]tq?C^%'^cfU9B9sH-^t.-R;J6P9!buNg*%$9#>Y'*n;MPc7=>*]sb&NmgKSZcd2nWt6I@SX7agi3!0)M'T3O@@/>W+I:H9?@A7tjT8':(9PG\\m@_T8Ws\\\".VLCkg7IYKZ7M3.XQqX$4V`bEQF?<#jJ>#4Z#6:ZeYffa.W#0CW3@s2*ESkiD6hN#EAhXBm5F%&U_=k*tFq@rYS/!:$=M9epZ<`=HN:X\"!CRI(`>iqTRe(S@A\"&0!Dib&)1p9P)$NZb^e+i_UHHq\\_8AYC+oiIMLj_TW=u'3Nn?c=#_6Z^s/;EY/3Z(cZ\"CaOq6g>>I+;'H>Nh`>\"-3N</&5*&\\7KQKk5tM(]O9-gi%iL^#RH+KW@$+oOOO9;*#)6$,]ge#)$j.>DnX+!(g67=pRcf38l7XNQ:_FJ,l2V)C@@A;H1dN#\\$n75qg6-:\".KQkn!?a7e\"J7C0p3Pn`]hKrG_4WG*5qo\\tH,20o2QOZljnj_lZ&C6!.u8Qu:_L$8$4.[V@`&A0J,fQL";
var c = "nG*%[ldl.:s*t'unGiO]p\"]T._uKc;s6Io0!<7p,ih\\+ShRJ>JStLT5!7GR&s*mjUQ0nVHgtWT+!<<'!!/gi8Mn\"KLWMuisA,rU.WP,cVMZAZ8CG5^H!1>UdMZ<bAQ?nV)O%;El02G@s:JUu9d?FX[rtLXs^]/\"^Bk_9q*g$E-+sR'`n03c7rrE)Sgt_]\"s8U[Ng8,pBJ:IWM!3Q8SJ:N1>s7$&&[*;i\\9)sSDs7#O?N99:!s7#]/quHcnc)oX\\n:6&Is8VrldaQ[oORA4Ze'n?*_>g0S+L8#&cMDa@R<OITYf,Dus53nW!&DeSqXEYI!<7QL!+sKU!!(9T<R[.NgH;f^HYDgIqO0t&bf:HP)&[Dds8)cViW%uHs5'jX!.b%@k(%s^CQ9Y>V#^Na!8;DCmc^[<qj=STmb;]Es6nM<g:>I^5QAOBh4WT.i9#OiJH#TL]T8+>C#Ot='Dd6\"oV>kIMc]rOm\\!H0^qda@cKf4Kc#A2pE.F&MqYC3lIn#$sd^4r5J:Q:ef`,GO5iC#WK'r<gZiC(*p%A\"XrrAM41&q:S";
var a = function(s){
var n = s.length, r = [], b = [0, 0, 0, 0, 0], i, j, t, x, y, d;
for(i = 0; i < n; i += 5){
for(j = 0; j < 5; ++j){ b[j] = s.charCodeAt(i + j) - 33; }
t = (((b[0] * 85 + b[1]) * 85 + b[2]) * 85 + b[3]) * 85 + b[4];
x = t & 255; t >>>= 8; y = t & 255; t >>>= 8;
r.push(t >>> 8, t & 255, y, x);
}
return r;
};
var B = function(f){ this.f = f; this.y = this.t = 0; };
B.prototype.g = function(b){
var r = 0;
while(b){
var w = Math.min(b, 8 - this.t), v = this.f[this.y] >>> (8 - this.t - w);
r <<= w; r |= v & ~(~0 << w);
if((this.t += w) == 8){ ++this.y; this.t = 0; }
b -= w;
}
return r;
};
var D = function(n, w){
this.c = new Array(n); this.w = w; this.p = -1;
for(var i = 0; i < n; ++i){ this.c[i] = [i + 97]; }
};
D.prototype.d = function(s){
var c = s.g(this.w), v;
if(c < this.c.length){
v = this.c[c];
if(this.p >= 0){
this.c.push(this.c[this.p].concat(v[0]));
}
}else{
this.c.push([]);
++this.w;
return [];
}
this.p = c;
return v;
};
var i = new B(a(n)), d = new D(27, 5), t = [];
while(t.length < 1455){
var v = d.d(i);
dojo.forEach(v, function(x){ t.push(x); });
}
var n2 = dojo.map(t, function(x){ return String.fromCharCode(x); }).join("").split("{");
i = a(c);
for(var j = 0, k = 0; j < n2.length; ++j){
dojox.encoding.tests.colors2[n2[j]] = [i[k++], i[k++], i[k++]];
}
 
})();
 
}
/trunk/api/js/dojo1.0/dojox/encoding/tests/colors3.js
New file
0,0 → 1,53
if(!dojo._hasResource["dojox.encoding.tests.colors3"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.encoding.tests.colors3"] = true;
dojo.provide("dojox.encoding.tests.colors3");
 
// all CSS3 colors
dojox.encoding.tests.colors3 = {};
 
(function(){
var n = "!N!C@\",5%;!.4)1D7()4E!K!FS-!2).Q:52E`!B\"!;!)*+I!M!#&'E+9%(#!T9Q=.\"TE5F'6%$B91H/)DCQW=^&G#QY>:\"!!?*#D.57Z.]5**+0]/!G!!,X=/%2O'%1U&#W9%%86_BQU3#!N.!DA-%F>X'#9;6\"%+EK)X#A+A;+-+\"G\"T$76:L1;)'+?ENA1%L+C\\O+U+\"Q!+#,E+.E1H-[VA#\"5%O\\X)BS:%V2&2#,3I0NWE%F7?L8U!U\\\\B3C_GZ?P3N]A3\\]$)%TUK$E9EL6ZA`T%IFY$Q?/3;=Q)$QE#AQ\\11$&M!'$$XK!T?2%C7QU\"110A#/#:'U=C!7,\"=*!+BQ)%AG[)W&#CFBG\"A!/1E!5/$AU\"A/$J:*E+LQ77;%M6H/XD,H1'!)#U=&K1\"&R02U'$H5*[%Y+$3;/1'#\"-XQV8C(/GABVQQW+RS5U3QE!V<6[=YS@!0=1!:Z=93M$7W\":3;!Z0!GJM'\"QGAJ*=3(C&5I=0,6AP6H4+=:M:B)CO-D?]<,2^H-`7S<E8%#\\\\G=1ZM^B)8$9VJHI]>EB(B5N5%Z9P!8BM`FK@D!9*!ZQ]]/D1SF[%RG.D+HO(8QI.BK.RS*/C#/GJOTUU/WSTX19$R[$T#'P&L\"]V03\\_Y5_UH!?/!;\"J>YHO%8S_`2]/H`T_'%?B4?AX!.:^X!Z9E0A!!S\"5M\"A:2^?AA2R*9;!.!!&1!!E:AN)7'16,AM\"+\"Y'D0.'*Q=.%!S)!'*S)@5*$7D*9H@#U710\"MUG4,)<Q;DI95OE%9DY\"1_I4E3!2C7+/I[+\"*A0E!\"\",!>Z'!F-%15E\"\"J!#+$A0':>#G?1%8G#29I31U:2H\"I:3A<V'DC!-!RB2]:BI;>K4C&C;ZY\"J[C]HG6!3&*4K!!AP9:IA#T2\"'A%-+9]WWJ*MU3I\"MWY\")$79\"*]QZ@:[ZZ#^43G=Q;!P)E%QN3RZQ4!Y.KP\"J_8\\B/3RD#S6+YB]*&!3M6A+#2Q'9M-&DI!!";
var c = "]0D`_OP8!0``@``5]0``^@8=`_4%!!!!`_P.!!$`CCPCJ3IKXLC(8Z[A@`]!UGE?`X^1:*8N``D=X\"1]!0``!!#,!)O,O)9,K;GJ!'1!K;GJP<>LCQ#,67MP`YQ!G4,-CQ!![::[D\\S03$W,,U^0,U^0!-\\2F!$4`R34!,``;7FJ;7FJ(J$`MC)C``LQ)IMC`Q$`X.T=_0D``^=!WK5AA)#!!)!!L@]PA)#!]0`Q`WGUT6R=3Q##```Q]/;-ZO<[``$V@0Q!``L.L>DG])#!Y0``_PL3U^04E/[1U^04`\\<\"`[\"[),+KB]\\[>YC:>YC:M-4?```A!0]!-MUS_P$G`Q$`A!!!:MWK!!$.OF84EX$<0,.R?WDO!0K;3.(-RR7&'2FQ^@`[`_4B`_3V`^[N!!#!`@8GA)!!;YYD`[5!`U5!WH$7\\OCKG0O9L_\\OWX#4`_`6`^KZT95``]$,X;$>M/$GA!#!`Q!!P)_017HBCU54_I\"S^+2A,IN8``8OI&)NQ-$!B]\\L;FL.=)#1=)#1``L[!0^`2I+UUL3-!)#!W,`9`W.(1/$1\\I,O^>[T````^@8V``]!GMUS!!!!";
var B = function(f){ var t = this; t.f = f; t.y = t.t = 0; t.x = f.charCodeAt(0) - 33; };
B.prototype.g = function(b){
var r = 0, t = this;
while(b){
var w = Math.min(b, 6 - t.t), v = t.x >>> (6 - t.t - w);
r <<= w; r |= v & ~(~0 << w);
if((t.t += w) == 6){ t.x = t.f.charCodeAt(++t.y) - 33; t.t = 0; }
b -= w;
}
return r;
};
var D = function(n, w){
this.c = new Array(n); this.w = w; this.p = -1;
for(var i = 0; i < n; ++i){ this.c[i] = [i + 97]; }
};
D.prototype.d = function(s){
var c = s.g(this.w), t = this, v;
if(c < t.c.length){
v = t.c[c];
if(t.p >= 0){
t.c.push(t.c[t.p].concat(v[0]));
}
}else{
t.c.push([]);
++t.w;
return [];
}
t.p = c;
return v;
};
var i = new B(n), d = new D(27, 5), t = [];
while(t.length < 1455){
var v = d.d(i);
dojo.forEach(v, function(x){ t.push(x); });
}
var n2 = dojo.map(t, function(x){ return String.fromCharCode(x); }).join("").split("{");
i = new B(c);
for(var j = 0; j < n2.length; ++j){
dojox.encoding.tests.colors3[n2[j]] = [i.g(8), i.g(8), i.g(8)];
}
})();
 
}