{"version":3,"sources":["https://lively-kernel.org/lively4S2/lively4-markus/test/templates/lively-handwriting-test.js"],"names":["expect","MockEvent","createHTML","testWorld","loadComponent","pt","rect","charRange","from","to","fromIndex","charCodeAt","toIndex","result","i","push","String","fromCharCode","describe","that","handwritingData","handwriting","before","done","timeout","templateName","resp","fetch","lively4url","raw","text","split","forEach","line","json","JSON","parse","console","log","character","e","char","it","ea","find","not","undefined","points","c","characterFromStrokes","strokes","strokesWithDiagonals","equal","after","innerHTML"],"mappings":";;;;;;AAAQA,Y,sBAAAA,M;;AACAC,e,uBAAAA,S;AAAWC,gB,uBAAAA,U;AAAYC,e,uBAAAA,S;AAAWC,mB,uBAAAA,a;;AAClCC,Q,wBAAAA,E;AAAGC,U,wBAAAA,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEX,eAASC,SAAT,CAAmBC,IAAnB,EAAyBC,EAAzB,EAA6B;AAC3B,YAAIC,YAAYF,KAAKG,UAAL,CAAgB,CAAhB,CAAhB;AACA,YAAIC,UAAUH,GAAGE,UAAH,CAAc,CAAd,CAAd;AACA,YAAIE,SAAS,EAAb;AACA,aAAI,IAAIC,IAAIJ,SAAZ,EAAsBI,KAAKF,OAA3B,EAAoCE,GAApC,EAAyC;AACvCD,iBAAOE,IAAP,CAAYC,OAAOC,YAAP,CAAoBH,CAApB,CAAZ;AACD;AACD,eAAOD,MAAP;AACD;;AAIDK,eAAS,uBAAT,EAAmC,YAAW;;AAE5C,YAAIC,IAAJ;AACA,YAAIC,kBAAkB,EAAtB;AACA,YAAIC,WAAJ;;AAEAC,eAAO,MAAP,EAAe,gBAAeC,IAAf,EAAoB;;AAEjC,eAAKC,OAAL,CAAa,KAAb;AACA,cAAIC,eAAe,oBAAnB;AACAJ,wBAAc,MAAMjB,cAAcqB,YAAd,CAA4B;AAA5B,WAApB,CACA,IAAIC,OAAO,MAAMC,MAAMC,aAAa,yCAAnB,CAAjB;AACA,cAAIC,MAAM,MAAMH,KAAKI,IAAL,EAAhB;AACAD,cAAIE,KAAJ,CAAU,IAAV,EAAgBC,OAAhB,CAAwBC,QAAQ;AAC9B,gBAAI;AACF,kBAAIC,OAAOC,KAAKC,KAAL,CAAWH,IAAX,CAAX;AACAb,8BAAgBL,IAAhB,CAAqBmB,IAArB;AACAG,sBAAQC,GAAR,CAAY,UAAUJ,KAAKK,SAA3B;AACD,aAJD,CAIE,OAAMC,CAAN,EAAS;AACTH,sBAAQC,GAAR,CAAY,oCAAZ,EAAkDL,IAAlD;AACD;AACF,WARD;AASAV;AACD,SAjBD;;AAmBAL,iBAAS,UAAT,EAAqB,MAAM;;AAEzB;AACA,eAAI,IAAIuB,IAAR,IAAgBlC,UAAU,GAAV,EAAe,GAAf,CAAhB,EAAqC;AACnCW,qBAAS,eAAcuB,IAAvB,EAA6B,MAAM;;AAEjCC,iBAAG,WAAH,EAAgB,YAAY;AAC1B,oBAAIC,KAAKvB,gBAAgBwB,IAAhB,CAAqBD,MAAMA,GAAGJ,SAAH,IAAgBE,IAA3C,CAAT;AACAzC,uBAAO2C,EAAP,EAAW,cAAX,EAA2BE,GAA3B,CAA+BC,SAA/B;AACA9C,uBAAO2C,GAAGI,MAAV,EAAkB,cAAlB,EAAkCF,GAAlC,CAAsCC,SAAtC;AACA,oBAAIE,IAAI3B,YAAY4B,oBAAZ,CAAiCN,GAAGO,OAApC,EAA6CP,GAAGQ,oBAAhD,EAAsER,GAAGI,MAAzE,CAAR;AACA/C,uBAAOyC,IAAP,EAAahC,EAAb,CAAgB2C,KAAhB,CAAsBT,GAAGJ,SAAzB;AACD,eAND;AAOD,aATD;AAUD;AACF,SAfD;;AAiBAc,cAAM,SAAN,EAAiB,YAAW;AAC1BlD,sBAAYmD,SAAZ,GAAwB,EAAxB;AACD,SAFD;AAGD,OA7CD","file":"lively-handwriting-test.js","sourcesContent":["import {expect} from 'src/external/chai.js';\nimport {MockEvent, createHTML, testWorld, loadComponent} from './templates-fixture.js';\nimport {pt,rect} from 'src/client/graphics.js';\n\nfunction charRange(from, to) {\n  var fromIndex = from.charCodeAt(0)\n  var toIndex = to.charCodeAt(0)\n  var result = []\n  for(var i = fromIndex;i <= toIndex; i++) {\n    result.push(String.fromCharCode(i))\n  }\n  return result\n}\n\n\n\ndescribe(\"LivelyHandwritingTest\",  function() {\n  \n  var that;\n  var handwritingData = []\n  var handwriting\n  \n  before(\"load\", async function(done){\n        \n    this.timeout(35000);\n    var templateName = \"lively-handwriting\";\n    handwriting = await loadComponent(templateName) // .then(c => {that = c; done()}).catch(e => done(e));\n    var resp = await fetch(lively4url + \"/test/templates/lively-handwriting.data\")\n    var raw = await resp.text()\n    raw.split(\"\\n\").forEach(line => {\n      try {\n        var json = JSON.parse(line)\n        handwritingData.push(json)\n        console.log('PUSH ' + json.character)\n      } catch(e) {\n        console.log(\"could not parse handwriting data: \", line)\n      }\n    })  \n    done()\n  });\n\n  describe(\"alphabet\", () => {\n      \n    // handwritingData = [{character: \"A\"}]\n    for(let char of charRange(\"a\", \"z\")) {\n      describe(\"character \"+ char, () => {\n         \n        it(\"recognize\", async () => {\n          var ea = handwritingData.find(ea => ea.character == char)\n          expect(ea, \"no test data\").not.undefined()\n          expect(ea.points, \"no no points\").not.undefined()\n          var c = handwriting.characterFromStrokes(ea.strokes, ea.strokesWithDiagonals, ea.points )\n          expect(char).to.equal(ea.character)\n        });\n      })\n    }\n  })\n  \n  after(\"cleanup\", function() {\n    testWorld().innerHTML = \"\";\n  });  \n});\n"]}