Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / test / java / org / gvsig / expresionevaluator / impl / TestImageFunctions.java @ 46050

History | View | Annotate | Download (22.3 KB)

1
package org.gvsig.expresionevaluator.impl;
2

    
3
import java.io.File;
4
import java.util.Map;
5
import junit.framework.TestCase;
6
import org.apache.commons.io.FileUtils;
7
import org.apache.commons.lang3.StringUtils;
8
import org.gvsig.expressionevaluator.AttributeHandler;
9
import org.gvsig.expressionevaluator.LexicalAnalyzer;
10
import org.gvsig.expressionevaluator.Compiler;
11
import org.gvsig.expressionevaluator.SymbolTable;
12
import org.gvsig.expressionevaluator.Interpreter;
13
import org.gvsig.expressionevaluator.Code;
14
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
15
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
16
import org.gvsig.expressionevaluator.MutableSymbolTable;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.gvsig.tools.swing.api.SimpleImage;
19

    
20
public class TestImageFunctions extends TestCase {
21
    
22
    public TestImageFunctions(String testName) {
23
        super(testName);
24
    }
25
    
26
    @Override
27
    protected void setUp() throws Exception {
28
        super.setUp();
29
        new DefaultLibrariesInitializer().fullInitialize();
30
    }
31
    
32
    @Override
33
    protected void tearDown() throws Exception {
34
        super.tearDown();
35
    }
36

    
37
    // TODO add test methods here. The name must begin with 'test'. For example:
38
    // public void testHello() {}
39

    
40
    
41
    protected LexicalAnalyzer createLexicalAnalyzer() {
42
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
43
        LexicalAnalyzer lexer = manager.createLexicalAnalyzer();
44
        return lexer;
45
    }
46

    
47
    protected org.gvsig.expressionevaluator.Compiler createCompiler() {
48
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
49
        Compiler compiler = manager.createCompiler();
50
        compiler.setLexicalAnalyzer(createLexicalAnalyzer());
51
        return compiler;
52
    }
53

    
54
    
55
    protected MutableSymbolTable createSymbolTable() {
56
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
57
        MutableSymbolTable symbolTable = manager.createSymbolTable();
58
        symbolTable.setVar("precio", 200);
59
        symbolTable.setVar("1990", 0.168873933773767);
60
        return symbolTable;
61
    }
62
    
63
    protected Interpreter createInterpreter(SymbolTable symbolTable) {
64
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
65
        Interpreter interpreter = manager.createInterpreter();
66
        interpreter.setSymbolTable(symbolTable);
67
        return interpreter;
68
    }
69
    
70
    private final String html1 = "<html><body><h1>Titulo1</h1><p>El veloz murci?lago hind? com?a feliz cardillo y kiwi. La cig?e?a toca el saxof?n detr?s del palenque de paja. 1234567890<br><ul><li>Uno</li><li>dos</li><li>tres</li></ul></p></body></html>";
71
    private final String expected_from_html1 = "89504e470d0a1a0a0000000d494844520000012c0000014008020000008929d603000023ff4944415478daed9d7f449dfdffc74792e34822479299c8249319994c3223b33b93c46492999b992433319349266626998924c94c24c92d73339999cc4d6692db8c499224925b3239dfa75ef6fabcbfefebbadee73a57e79c7e3d1f7fe474fd78ff7ebe7f5de73caf734942c891728e454008454808454808a10809a108092114212114212184222484222484508484508484108a90108a90104211124211124228424228424208454808454808a10809a108092114212114212184222484222484508484508484108a90108a901042111242111242284242284242c83117e1f4f4746565657e7e7e7575f5dcdc5c8eb337323272ce8fbdbd3dd63d391322dcdadacacbcbd3a65f5050b0b3b3431112124a840f1f3e3c1795f1f17109e4fdfbf7d6a9bffffe3b97d9dbdfdfdfdcdc7cfefc79ce44383f3f5f5e5e4eb5930c88f0fefdfb9145383a3aea3b12c6e3f1dddd5ddfe82e5ebc880b0a0b0bb3944f4c867320c2dede5e0eb924f322eceaea5a5b5bdb3b009349b385617ab9f79b9f3f7fb6b5b5c9714c02359c99991959135eba74296818fcf4e993dc983d11deba752babdaf8f6eddbe5cb9739ef259914617b7b3bda5045458579104dca12a17536168be1787777775aeb4619064fa20831dd9d9b9b6b6a6a926031116d6868a00849664478f7ee5db4a13b77ee841721b879f3268e633d19266e4c4dc7c6c62e5cb8a0019e381176747468988944e2fbf7ef28318a90644684d2981e3c78909608f5ae94db92d3d3d329d796b8ece3c78fdee3aa556b7aac78f760438af0c78f1f4f9f3ec56886283085460631b82153efdebd734fa4cf9f3fbfb4b4a4254011920c88108b1c2ce1565757d312e1f2f232eec2df9328c2dede5e731bc9a2aaaa0a65e25b505353531a2045483226425f528ad05c2c6d6c6c3c7bf62c4884b8407674a028535d7b067219168d189d7c452873daf1f1714b3c1144683e92292e2e9e989840c83f7ffe3477898b8a8a7c75e89d0b5084e4e845a8a47c3660893048d2981c3a2e6b6c6c3c8c08e7e6e6ccb36fdfbe35cfd6d7d79be32145484e9808530e41614498f2b2e6e6e6c388f0dab56b7a2a168b41f3e6d9c9c949f3dea0f521454828c28822dcdede364f2128eb5ecc87cd0bac1d638a9050848715a1b5458445a03776e4542f282929a10809459849118e8d8d99a77a7a7abcb11717179bd758f3558a9050848712e1f0f0b079cafcce9d924824424a8b22241421454828c29326c2f1f171f3d4e3c78f391d2514610a11e6e7e75b67e53babd144383b3b6b9eba77ef9e7b630682e4c60c398b222c2a2a7284138fc7238b10179b5fb8c195d6bd1b1b1be6bdadadad142139552234d5e508f0c68d1b66383333337a4abf451df961bd39907a1fd6bf7bf7ced7378022244720426b4cc000e2581d09151515e62d2b2b2bd605d637ceacaf8c2b58aa99975db9724594b6b6b6565353638970717131ad647cf9f2c53c3b3c3c6c9e35bfb6565959e9ceb2b53af5e697908822448fbebbbbdbdddd6d35f7172f5ee0b8b7bf474b5d5f5fb7be780d20b9e5e5e55fbf7ee9957d7d7de605b76fdf860e1120840181e965b8cb0a0ac3662291c83bc01a7fdadbdbd1fa118b24c3fb3d720c7d5632fafbfbcd59f1c8c808f285401e3c78600e9248956fe10810bf39bb069d9d9d523e2065874528c2b0b3502fde6964d04f99bc5f0ddbdeded65fd65b4c4f4f9b6142f0be970d0e0e2e2c2c788f3f7cf8307c329207cf2aacb5a509c6525f058292929230d63b567608392e224c1e7c3913b34db1a2c1b086c1a4aeaeeefefdfbdeb9dcecec2cc6528c48b8acb8b8b8b5b5f5c3870fbe7b33114428f36d0c89587f220d88427ed4dbd2d2323636e618c7284292bb35212184222484222484508484508484108a90108a90104211124211124228424228424208454808454808a10809a108092114212114212184222484222484508484508484108a90108a90104211124211124228424228424208454808454808a10809a108092114212114212184222484222484508484508484108a90108a90104211e68cfdfdfdd6d6d64422f1e0c1831f3f7ebc79f3e6ebd7af2c9693523ed94e1e45980b161616a6a7a77776761e3d7a545252821a65999ca0f2c976f2228ab0adad2d2f2fefdcb9737ffffd7746d291f1008f907ffef927168bbd7fff3eb3c1e6b2883a3a3adc7145cee3a54b97ce1db0b7b7c7de2785083f7ffe5c5b5b8bc22a2b2bbb73404b4b4b6161213ec805e3e3e3996d10190ff0a8f8f2e50b5af0ececac757c6d6d0dc79f3f7fee7bd7fafafa93274fae5cb982022f2f2f47697b43c86511b9e30aca63185002be220c2a9f972f5f5ebb76ada9a909431086a3a3aa5677f56571248cc7e3b76eddd27fdfbe7ddbdcdc2c9ffffaebafcc36888c0778dc4063c2e881a1c07beac3870f555555586cfcf7df7f72647979f9debd7b28ed5fbf7e1d4911652f2e91b75784bee5b3b8b8888b575656f0b9a1a1e1f1e3c7c7b0fab22b42cc804d11a2893c7bf68c228c464d4d0d4a0f79fcf6ed9b791c6bfd8b172fa2a3dddadac2d2ffc2850b8944e2fefdfbe8f507060620c5332242dff2999898c8cfcf97cf280a8c87c7adfa722dc2309584a9944cfa8b8a8a50d09f3e7dc2708a7fd18be0332e78f5ea15da59696969757535027104383838585959892b3143ebe9e9d9dddd95e3a895828282c203f0d95b2e5846cbf1b9b9390c2668d3c808e245877ae3c60d7c469863636372716767a7b9fe79f7ee9ddc8bb6222d46fe8548702ff28224fdfcf953675692978a8a0a846f5e8f70cc24218598de4366880bd34ef314da965c5c5f5f0f11eeefef437e283d0c8f3878f9f2658c8abe45b4b1b181195a717131728454619e6276970816c771162b889b376f22e5ba840b2a586ffd223b8d8d8d0807d52a05e2cda3fe8bd2467a102ceaa5b7b7d7dc5d7cf4e811528253a80e0cf85e1106954f18117a6bc191cdb4da4698eab370544aee4408a02e48ce4c16b28d468ccfc3c3c3f82c9ac16764696969c937c0d7af5f2310697fc83cc2ece8e8901ac5b881bf1232727bf7ee5d6f1a702342abababc3bdf817430afe455e6451d1d7d787a8659223356d46fdefbfffaa080152887faf5ebd8ae8b00a82fe25fda839b4ecefdfbfcb675cf3cf3fffe8f59608d108309fc107d4f4f9f3e7ad393fb283453892a46b1ed5395a1212ef5b4468e8284ca40a9ffbfbfb71fbe6e6a69ceaeeee460b40b343c8586742dbc8949c0d2a58dffa8502452d081fff2210b34c348f6611e15f9492b4724d27f22839c2b02fddb425c2a0f24151e362b9172b43ef7434a8161cd94cab6da4ac3e0b47a54417217252f61bb3081c227cf1e205e216d5c90e6f5b5b9b7c867e745589f681cb3010f906883664aa6b64640417236fb84b4654d93084087d33890245682805ed08f0af76cfa833fc3b3535e51b35da87294209aabdbd5d4e69eb41bfab2944c5a38e654527d75b2244cdadafafe3037a599cfdf8f1a30e59c8a91cc7e8e7cdc8cccc8cb61e2b9d68a098b5ca67b478b3dd636490040328104393061854b0be22d4229202d44c5979b44a1ba0ab7af8f0a17cc6d862c68884794518543e2227d998696969d9dedeb6d219540b8e6ca6d5365226cf3b6606554a4e47c2d5d5559cd289016426132169dc4f9f3ed52b21a1dbb76f7b03942ba5ef31f3636ec7c91114ae6ff2ac56e2ab2b3d1b4684680a66f8720dba9b9451cbbe0b7a50551d7a4a0843ff45c724b56b4a258c084d7010a7747a8f46e32bc230056bc6a5335877017ab38c18a52d7a0b0a556689d0513e6e826ac19dcdb4dac6619267554a4e45281b59989cc870879980cc1e257b109e0eada82a746fde00e54a2d17cd0f26f4f22f265ae802d14106a53ce322b446366f0a1d22c4620639d55ca316510852260003203ea373c55dd2dd5ad3ada0e928268158ef416f186a10a059df98b36028404a505058556aa34959b041f51b5984de18bd1b33eef27110540bee6ca62b4247f250ced63cd15129b91621d67b388b911d9761516ee6d65c3a070528576ae3f376d8581ca32c7489925911a2e1a614a1b7af0d8afad7af5f9099b9f981c5ba593718e8262727650f06136c699d434343320ad5d4d4f82e9b112c6a07dd902c6cac4e17d16129287b127ffef9a7cee252166cc645e8adf4d1d151538429cb27e548e8ad057736d36a1b6925cf5d29191321263912a85b84a8758804a5d0dadabab8b8a8c7abaaaa747de8ae754cd2f48b01aa6a99d3a351627e6f3e2c91b5786411cecfcf9b85259b016e11caaac34c6150d4f8607dd1098941e1e88a451f516018842051e6f85726ed8e47145818e3b36ebec929cd02ae09ea3d1d059b0d117ad784c8a329c294e5e326a8161cd94cab6da4953c77a564e661bdec4c4a0f2d938a898989a07bb1d8abafaf47ef6e1e940700bab382114097ad56805823c56231d98784a431a7d56cd7d6d62219fa14fbfaf5ebdeef4f8990b48fb496a352d0ba964050c8a96e2460f28644f6f5f5c9bf5fbf7ef55d78606d63e6059dbdb93baadd30fa459d0b282896828202e92fa51740f78400f5613d024123b61ed69b45244d4172847e1a8937ab1fa9c500e85b2f8e82f53ecd9321da5b80561ea5880607074d11ea0e5c6f6f2f0613d96fc45fc4888b75780f533e0e826ac191cdb4da465ac973574ada22fcfcf933e633e6d7d6807cf10feb54fd1e23fe068d6cd09bef5401a58306974824cacbcb3b3b3b65a0f70d10f31688adf480eeee6eb952e615c8aa3c2744417b07649402ca481e574a6852d0403639a4a081b654048b452626f15038424329e32cb22ccfa9e462a4d9da897dfdfa355288b10b6b005912747575e9f50810a72453b2052a51cb52419e9dcac3408090916cc48e58109af76b6bde229a9a9a4219e27a74941845d18f206ae9d45657575138321d95d987b9e7ee5bb026fadd51fc95266816a09547245bffd5ba43ecf857f69cd0772316e810d1612685644b0de2c6f0e5e3c05b0b8e6ca6d5362224cf51291147427212414f8f0e14b35c9dbfa03d3936b1c8d142119e42d0a35bcba4a0879084222459014b357db82ccb30ac23301f63c95084244760fed9d3d3238faa00d6b7fdfdfd611ebb118a90108a9010421112421112422842422842420845484e2d39b0fa3d596ecb1421c93539b0fa3d596ecb2944b8bebe7eebd62d64231e8f077d2b3fe9e74b9b2503dc0878dd66cdb45929cfaac1aedb513772891d87a23e3ed57d0aa7a3b70e481e7c51bdb4b4d471a5e5157b1873d88c63b9cd5a69b3529e55835d47e0914b2ccc8d6ae50ceaebebcd5f7866840889777be95a262e687e8e31205a14274684c883fc267a6b6bcbfc619b97e3ec1a1a6474e99bf2ac66e4684b09d399e3f35b8a202fddefdfbf37363616141498072b2b2bd5f7f1f0519c30113a9c9428c2132742875949eef1f5d25d5a5ac2fa4d7ef2a707272626d488e8f0519c24118e8e8e969595a92f939a2c84b1eef51ae0a6b4ebd579a3d7c535c84dd561cbeb709bf5a62da508535ae5aadf313e240fccb9e467a3a6f9aa3770717900686156aa1289849c428c7223b2d3d0d0209f3b3b3be52c8a25c86b385d1186b7ac0de377ecb61e4ea6f2d245bf6f8a104399effc39a829868942f0dadb45b0eecdf54818debad734870d69d71be4e2ea70530db2e575bbcd5ac6b56e1186b4cab5fc8ee7e6e69018af21aa19b8b40f7410de5461e68f267ee5ca15bd11ff9a1947abd23592afd770ba220c69591bd2efd8613d2cb8bd744d11a224d56e1071a9b597a329868922488411ac7b732dc2f0d6bda65b4e48bbde201757879b6a902dafdb6dd66db516d283d84a3cb4aa46d13238f876341a38ca04e3832ad09baaaeae2ea85a7a2e9446535313e2d5ba40e06aac10e443959608435ad686f43b76580f0b6e2f5d5384757575d278be7cf9822bd507c8d114c3441124c208d6bd39156178ebdea096e1b0eb7578e99a581e72216d792db7d9f0220c6f958bb608cda88b3334e35b791a389ab23653df5461f2a6c940b05817e94eb5740dfafbc08c88d051c861eac84a4390f5b090d24b17152a2284fc2042991a343636225811a1bb29a68c027d843885ca841f88174ec872384a1186b7eef56d196ebb5e8797aec34d35a42dafb531135e84e1ad72a5b5c99a10b58e459def8f6825f0fafafaa2a22214a069ea6ea50ab7a3e9604e25735d949e4cc010b8f95a814c89308c656d78bfe320eb61c16df50b05a287423a9f3d7b8640a42f4337045d21fd224277534c867613f68e8411ac7b8f60240c63ddebdb32dc76bd412eae6e3755872dafc36d36dd91308c556ef2b7ed1f2ec0a8a5b326df5242178e65154ac35c5e7af382ae1de30096a3d2c7630e8c49172e408b5427c2438a1049c5042ca4656d78bfe320ebe1643a5eba8b8b8b353535324594f25411ba9b62f8282c1146b3eecdf59a30bc75af552b61ec7a7d5d5cdd6eaa41edcfed369bd69a30a455ae70f5ea55940fd62a412f0c310397dd73475e64bf014d4d079f8686064cf3a04cb385791da3839ee87a4588ac2101e12d6b43fa1d3bac87c37be92222091059c61403734844118fc7f101b7389a62f8282c1146b3eecdae085756569008991169f6425af75ae6b061ec7a7d5d5cdd6eaa41b6bc6eb7592b6d56cac37b10fb3ed741bc6825ee2796328e216b68d398b8ca768e95aae4eff7eaa0fde9fbd2060707d1bfdcbc79d39a419937961ce01bbb65e58cea40e0104c78cbda907ec70eebe1905eba9831a9d5a7b9f0d32986a3294676138e66dd9b4511625aaf1ea9a8d49999196d9429ad7b2d73d83076bdba1ef0bab806b9a93a6c791d6eb356daac9487f7200e9a0821f166b765e275d445dbc58c0b05f2c71f7f98a932a71ea66c4496e64694951d79aa869ec28ada6de59c4cc7b236a5df7132d87a38bc972e346c6e1d270f2ce49036247b7e7eded114c344a11b338a6ecc44b0eecdfa7494a485d8e91ff3ef67641b5a0f53844709a667b2a57e96a1f530457864609582d98e4e96ce2cb41ea6088f002c98b1eac01ccc7c727066a1f530454808454808a10809a108092114212114212184222484223cbd9c2c8fe7d3977e8a909c308fe7d3977e8a307764d5123b3c219dc895c78f1f5757575fbe7c39e8171521f1da871f7fc2a7f998542e45989aac5a628724c889dcd7e3f9f3e7cf38b8b5b5f5efbfff06fd0c3f3c967d7866c9924775f8341f87ca3dee22f4fe322df71c075be12027f2208f67f96d1be48745d7eaeaeae1fba090224cb7beb2e4511d3ecdc7d933fae8458885fbc0c0000a88224c063b9107793ca3fd5db870a1b0b070787838370d3a5a7d65c9a39a22cc8c08efddbb27bf47969f1e9b0e0b4176d469f9677b09e3ed6df1e1c387dada5adc525454a42ecb4131aa71757e7e3e5a09ae917fd56dc9376b414ee4c9101ecf9b9b9b1867d0cad5a37a6e6e0ef1220ae853fd11bd720ab20f771494b7be1c0ee529d30f3d2385ea03e45bce874f3345987a3a2a769de611871d7504ff6c93f0dede8afc8c5d565c623623b138629c9f9fc7297589453b53ab1bb7d3b6ef4818e4f18c26dbd5d525e120ccbebebee4ff370b97996a90b1acdb3edc5150defa0a722877a75f3b2cb1ab0a2ae78ca499224c5b840e3bea08fed926e1bdbdcd1d4b1cd7b7148c8d8d6907ef8811cd0e6d1162c308698e456ea76d5f1106793c437b1897aaaaaaeaeaea300cca1a52fcc8d029e8ed4886af33a2db3edc5150defa0a722877a75f509fc2a072ce489a29c2f444e8b0a38ee69f6d851cd2dbdb0473a444223134341464bee41be3f5ebd731d035353585c95a900853da485b781d0d310e6b6761a524c83edc5d504122b41cca23a4df5dce87493345989e081d76d4d1fcb3ad90437a7b5b37624e85291fd62a58d1858c1143250eca8c3165d6824418d2e3395d11baedc3dd051524425f5f6077fa71637d7dbdbb9c3392668a30ca48e86b471dcd3fdb0a39a4b7b7effe47777737aec1022f4c8ce886c5c3577d1c533a6d5b220ceff11c6d240cb20f7717547811a64c3f161418fa1ce59ca934538469af091d76d411fcb34dc27b7b9b6dc2f47885f030e7491923d681b2aa79f2e409ba67f1c34ca672dab64418dee3395d112653d9873b0a2abc0853a61f7d503c1e779473a6d24c11a610e1e4e4240a484d8e934e3bea08fed956b308e9edadc856a7f85b424bf21a4a778cf8a0de7b987a15141460b5234f5f1c59f33a9147f078967d45732e0711ea7685b5d3e8b00f771494b7be821cca53a61f7304c4e228e74ca539a87229c2fff58e6825689a585f2d2c2ce84c23c88e3a2dff6c6f7461bcbdbd0f09e4b11ee21d1a1a72c7282f330062b78c1be55f5cf0e5cb97a0ac799dc8c3db482be814d4a35a7301116a62ac676e41f6e18e82f2d65790437998f44336f8ac4b44df723e7c9add954b1192338d3cb490874c84222447c0cb972f33fe5d3642119234c05a1a93f033be5f4211124211124228424228424208454808454808a10809a1080921142121142121e48488f0e4da2ae7deee7a6666261e8fab7d0ba10833c6c9b555ceaaddb597a9a9297458f243aac3f0f9f3e7f2f272cb366a6363031d625151517171717575f5e4e4a49e5a5d5dbd7dfb364e2512898b172ffafeec7d6d6d0d1d84f98b47c4128bc5c4a2a2b4b4343f3fdffcd1d6cece4e676767494909a2abafaf17df3d80cb7050bd2d70d674d0eaebeb132312a4df7436d8dfdf7ff2e4098ee3de868606ebabe46fdfbeadacac44e22d03458af07f9cdc9f4ba765777d1cd8dddd453bbe7efd3a926d89f0eeddbb68dff223dd172f5ee002553baec7b02fbf5412630baf871a045c5151618a707676567f269a3cf8a585f9eb5e84d9d8d8284507d9e88d386e063b3232a2ee35fdfdfd909938942f2f2f43aea3a3a3720a11e1946815198474c5182ef9dbb2447e22fcf1e34748faa44f2528c2932dc22b57aea04da3b17a4588d6af56c590222e50dfdea6a626f556c398835396d1c6fcfc3c5484cb4c11622cf5f53b4cfefe51bffe94fecd9b37f27e0b046e7990dfb87143dddfaaaaaa4c530c0cce62ba81bb20484d3cfec598ac89bf76ed1a44ae77d5d6d6aa77db6913a12eed565656d0c3c9efcd4d2b2787b5b65784be06cc297da92d5f67316bc02da80fcc7ccc95a71828589e5f41aecf2691ada30f5f50561692e9b8955b88999225c2cdcd4d9dc58908cd1fc5eb1b35306fb40c265026182771fcd6ad5ba608314c99735a93969616cc2753a61349525fe6e48109bfda2e02f426223cb1c3435de829a4a4aeae4e728a4233dd19714b4141c1a91d095131280b340bf181150f25ad0687d1b525428701b3db97daf275c6e4cafca5a9244f63915720a9081d919a44b68ece4841595908e9561e5284d64885904d0f7c011d070616cb7114735731d4b144d8d5d5a5fe7416585efafae5584057e6ec144322922d4e22683358e3a112a533c27173ea7be7ce1d74d0b22eb526cf62f71eb2a04e9e08454be67402bd913a463a8cae2d113a0c98ddbed46e5f672b1669882a4247a42691ada3b3515021ddca2388f0f2e5cb6621cb2d68f4c8114488966deec720d7627e6589108583b99f6cae60a66a3a4a21761c41e1a017435f09b9eacb4b4c308db466a70303034803fa41dc88a8f538528515a91c414410b90c775262e61c41ec15bdbe3ea74a84e6ebf530f5420578afb4ec3dcdb6e53660761801ba7d9ddd2274476ab5dd68d6d1192f28f7958711211abab53ba2fcf7df7f18f4cc1e0429d7266e8910cb012919dc854920ee52f5e233e6cf324dc08402f2f6befa777d7d1da3b13964e133a2ebe8e89099397a0a7d8d1c4e617c8632d12360f58194884dde1915a1d944d017caac20e934ba366f741b303b44e8f675768bd01da9b9ab1ed93a3ae305950ce7569eae081138da719011a30e3bf2e6538c39a6f1b62542132c29a128b5488bc562e684021285a8acfd2dcc45cd15206616509d96e7f2f23232eef59ed34d26ac5992076ff9b6a6a3628773caa7a366078f26525252924c65aded1d09830c98538e8441becede168c7585351206456ab5dd68d6d1192fa8906ee56989104b2c34eb946f29456aa11979aa81414c3b9dd801d60be1cc9a92b717cb9e8a29578c5d5eb3365c63ce453f7efc68be684076d77004e3ad372e24431602282524d5cc29fa3b9c3db51b33d244ccd78968d7e536bab6e4e1306076fb52bb7d9de7e7e7cd48654b4d873547a48e356178ebe88c1794fbca5f07a4254288f9d2a54be63701742e2da38ab982f51d82ac91706a6aca1a09559c7d7d7d982eaa4fa9bce8c20c4adecb6d0ec84818d26c86393333a3aee7e6c82625a32f4b6c38c07c48e3303e3f2522aca9a991b2c3b45b37fddc46d796adb2c380d9ed4b6df93a4312a642e4bd79daf2b084402cf2324077a4d6ee6834ebe88c14943565705c597240504dc9ceb0d55fc873c2e9df60e92bcb5479eca62b61a92cdf670f50a63c18509debebd31e3f7e8cf1470b0a9ac1102acf06a122ace5ac57a0a28a6fdebce97dc889ee40b67010023e6b3781bc48b16c6f6fe3b839144be72b95f2fefd7b149aef96f569db1d95350330d5126474ed6babec6bc09cd297daf275b63666640bb1a2a2026dabb6b6167586f10717e82b25829caaade784d1ecae0f5f50de2983e34a8c69beefa3474f27ef54528f707ddbd4390f2a6384892e43840dad7a7b16680cb1cb5d281cd9f64006e5cb62b80bab3bebdb7658d461c22905e57d0931c4acdf86319fa0a2eb9487b45810f6f4f4e80c166a1737741c7ff6ec9975233a479c455c2896901bc8a76763e66839b65f67895c507c1d0aa1088f5884f2bdcd13bdb347b22b42c76ae148181818407ae4b5f2c78a68058599f0b503d80a29427f3a3a3a0a7ee37d8d568ec19a040b00494c2c16f3be1fef088956505850c9f74e523e3f20677a242484508484508484108a90108a90104211124211124228424228424208454808454808a10809a108092114212114212184222484222484508484508484108a90108a90104211124211124228424228c214311dc01227e4684468be1b88854ec8b116a1be594d5f90661e8cc7e3fab6404228c26c8d84f2dae4972f5f9a072726266a6b6b59618422cc8508e575ede63bb49307af1f335fdd4c08459845dc221c1f1f9717d3cecdcdb5b6b69696961616167a5fce5c595989536565653d3d3dbeafd72584228c3e122e2d2de182ab57af6e6c6ce0dfd9d959d1a49c7dfdfa752c1693d7186e6d6d555757777474b0a60945984911eeecece082fefe7e3d5b5050f0f0e143f98c31f0eeddbb7a6a6464242f2f4fe44a08459849119a1760467afffe7d7cd8dbdbb336753042e208464b5636a108732142398575a315daf4f4342b9b5084b91b090706063812128a303a5b5b5bd6920f0c0f0f3f78f020a508c1c58b17efdcb963de888bb9262414617ab4b4b4241289c5c545f9f7fbf7ef151515dfbe7d937fbf7efd0a5d0d0e0e9a22d471726c6c2c168bc9c5dbdbdbd5d5d5e63e0d211461287677779f3e7d0ae11517179795953536362e2c2cc8291c97e784a0adad4d45687ecd6d7474149f4b0fe8eeeee673424211124228424228424208454808454808a10809a1080921142121142121842224842224845084849c2d114673febd74e992dcb8b7b7c7da2214e16115184d87cf9f3fa70809457894221c1f1fa70809454811127296d684fbfbfb8f1e3d2a2e2e2e2d2d6d6e6e7ef3e68d25c2206fdf0f1f3ed4d6d6e2785151d193274f58bb84228c486f6f6f3c1efff9f3273efff8f1a3bcbcdc146190b7efaf5fbf7097183a89ff057d65084518110c65a62b4c7b7bbb29c2206fdff5f5755ca6b634636363ac5d421146413c0b5fbc7861ca4c45e8f6f6c55c3491480c0d0dd154865084d1f1baf79a1b336e6f5f9cc512119355ac094d2f364228c2b447c257af5ee991d1d1516b24747bfb6e6e6e767777e3e0fbf7ef59c18422ccc09ab0a3a3c35c130679fb427b8f1e3dd2e3d7ae5d7bfaf4292b98508451e8ededc57c726565059ff1b7baba1a325b5a5a92b341debef3f3f3f9f9f93f7efc90bbe2f1384742421146647f7f1ff349e81043627b7bfbd4d414440881e9c816e4ed8b05a13c3cc4d9a1a121d62ea108092114212114212184222484222484508484508484108a90108a90104211124211124228424228424248ce457818cb434228428a9090b327c2eaea6ad60da1088f4684fbfbfb0303031c300945982d1da6bcecdebd7bc5c5c5b8b2ec809d9d9df1f1f1fcfc7c1c595b5bbb71e3463c1eafacac146b60f0ead5ab0b172e94969662f0fcebafbf341cba71138a303a62346a1e595a5ac291ab57af6e6c6ccccece16141488c7ccf0f030f4a99ff3f2f2c48a866edc8422ccb008c56eb4bdbd3d79e07a683aaf353737eb3c1622ecececc467ba71138a302b227cfdfab579503c484d5f43cc636fdfbe2d9fe9c64d28c2cc8bf0ddbb77de83105ed96f0a0b0b5b5a5af42cddb80945985d117abdbabdd08d9b5084591421a8aaaa6a6b6bf3d51eddb80945189dc9c94948eed3a74f7a447638cd57350990657e7ebe5e891be7e6e69274e32614e121c13cb3b9b919cbb9f3e7cf2f2c2c4c4c4cc8734290482430ca99178f8d8d613cc4f1f2f2f2cece4eba71138a90104211124211124228424228424208454808454808a10809a108092114212114212184222484222484508484508484108a90108a90104211124211124228424228424208454808454808a10809a10809a108092114212114212184222484222484508484508484108a90108a901042111242111242284242ce0aff07244fc114d47854590000000049454e44ae426082";
72
    
73
    public void testImageFromHTML() throws Exception {
74
//        SymbolTable symbolTable = createSymbolTable();
75
//        Compiler compiler = createCompiler();
76
//        Interpreter interpreter = createInterpreter(symbolTable);
77
//        
78
//        String source = "IMAGEFROMHTML(300,200, '"+html1+"')";
79
//
80
//        Code code = compiler.compileExpression(source);
81
//        SimpleImage v = (SimpleImage) interpreter.run(code);
82
//        assertEquals(expected_from_html1, v.toString());
83
    }
84
    
85
    public void testWriteAndRead() throws Exception {
86
//        SymbolTable symbolTable = createSymbolTable();
87
//        Compiler compiler = createCompiler();
88
//        Interpreter interpreter = createInterpreter(symbolTable);
89
//        
90
//        File folder = TestUtils.getResource("testImageFunctions");
91
//        FileUtils.forceMkdir(folder);
92
//        File imgfile = new File(folder,"test.png");
93
//        
94
//        String source1 = "IMAGEWRITE(IMAGEFROMHTML(300,200, '"+html1+"'),'"+imgfile.getAbsolutePath()+"', 'png')";
95
//        String source2 = "IMAGEREAD('"+imgfile.getAbsolutePath()+"')";
96
//
97
//        Code code = compiler.compileExpression(source1);
98
//        SimpleImage v1 = (SimpleImage) interpreter.run(code);
99
//        assertEquals(expected_from_html1, v1.toString());
100
//        
101
//        code = compiler.compileExpression(source2);
102
//        SimpleImage v2 = (SimpleImage) interpreter.run(code);
103
//        assertEquals(expected_from_html1, v2.toString());
104
    }
105
    
106
}