{"_id":"@xstate/test","_rev":"1357493","name":"@xstate/test","description":"XState test utilities","dist-tags":{"latest":"0.5.0"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"time":{"modified":"2021-11-02T20:16:02.000Z","created":"2019-08-23T13:52:19.290Z","0.5.0":"2021-10-25T19:10:34.313Z","0.4.2":"2021-02-13T14:41:27.122Z","0.4.1":"2020-08-17T13:14:29.430Z","0.4.0":"2020-04-15T17:57:36.712Z","0.3.0":"2020-01-07T15:40:18.361Z","0.2.1":"2019-12-28T22:06:04.780Z","0.2.0":"2019-12-16T21:18:56.820Z","0.1.0":"2019-08-30T16:19:44.376Z","0.0.1":"2019-08-23T13:52:19.290Z"},"users":{},"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"versions":{"0.5.0":{"name":"@xstate/test","version":"0.5.0","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/main/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js","./es/slimChalk.js":"./es/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib es tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc && tsc --outDir es --module es2015","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.9.0"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^26.6.3","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^26.5.6","typescript":"^4.3.5","xstate":"*"},"dependencies":{"@xstate/graph":"^1.4.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.5.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"shasum":"d38047fb8d58f4968da14f17a57cbc80c892f53b","size":11053,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.5.0.tgz"},"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.5.0_1635189034160_0.5950223174157543"},"_hasShrinkwrap":false,"publish_time":1635189034313,"_cnpm_publish_time":1635189034313},"0.4.2":{"name":"@xstate/test","version":"0.4.2","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js","./es/slimChalk.js":"./es/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib es tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc && tsc --outDir es --module es2015","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.9.0"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^26.4.2","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^26.4.0","typescript":"^4.1.2","xstate":"*"},"dependencies":{"@xstate/graph":"^1.1.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.4.2","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","dist":{"shasum":"cd17c5435a455e15858f482db21175b285cd5ce0","size":11588,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.4.2.tgz"},"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.4.2_1613227286984_0.3782987439063652"},"_hasShrinkwrap":false,"publish_time":1613227287122,"_cnpm_publish_time":1613227287122},"0.4.1":{"name":"@xstate/test","version":"0.4.1","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js","./es/slimChalk.js":"./es/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib es tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc && tsc --outDir es --module es2015","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.9.0"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^24.1.9","typescript":"^3.9.7","xstate":"*"},"dependencies":{"@xstate/graph":"^1.1.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.4.1","_nodeVersion":"12.4.0","_npmVersion":"6.13.1","dist":{"shasum":"115aed246dc352a52da3e5594d273ad9ccf483df","size":10644,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.4.1.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.4.1_1597670069324_0.3500519169634757"},"_hasShrinkwrap":false,"publish_time":1597670069430,"_cnpm_publish_time":1597670069430},"0.4.0":{"name":"@xstate/test","version":"0.4.0","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js","./es/slimChalk.js":"./es/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib es tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc && tsc --outDir es --module es2015","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.9.0"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^24.1.9","typescript":"^3.8.3","xstate":"*"},"dependencies":{"@xstate/graph":"^1.1.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.4.0","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"shasum":"27cb677d5bb5539c89ae4c0616487b5b52e842e5","size":10557,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.4.0.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.4.0_1586973456535_0.8346213023578608"},"_hasShrinkwrap":false,"publish_time":1586973456712,"_cnpm_publish_time":1586973456712},"0.3.0":{"name":"@xstate/test","version":"0.3.0","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.7.6"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^24.1.9","typescript":"^3.7.2","xstate":"*"},"dependencies":{"@xstate/graph":"^1.0.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.3.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"shasum":"366ffd9eb349a5244d8e6d085d85b86879f4bca7","size":9314,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.3.0.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.3.0_1578411618148_0.9443429227512536"},"_hasShrinkwrap":false,"publish_time":1578411618361,"_cnpm_publish_time":1578411618361},"0.2.1":{"name":"@xstate/test","version":"0.2.1","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.7.5"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^24.1.9","typescript":"^3.7.2","xstate":"*"},"dependencies":{"@xstate/graph":"^1.0.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.2.1","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"shasum":"60aa9a9a86820f0568a635ee93208215212975e5","size":8983,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.2.1.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.2.1_1577570764608_0.9587231085290728"},"_hasShrinkwrap":false,"publish_time":1577570764780,"_cnpm_publish_time":1577570764780},"0.2.0":{"name":"@xstate/test","version":"0.2.0","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","browser":{"./lib/slimChalk.js":"./lib/slimChalk.browser.js"},"sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib tsconfig.tsbuildinfo","test":"jest --runInBand","build":"tsc","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.7.0"},"devDependencies":{"@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","strip-ansi":"^5.2.0","ts-jest":"^24.1.9","typescript":"^3.7.2","xstate":"*"},"dependencies":{"@xstate/graph":"^1.0.0","chalk":"^2.4.2"},"_id":"@xstate/test@0.2.0","_nodeVersion":"12.4.0","_npmVersion":"6.13.1","dist":{"shasum":"67b7a75d9801681944e2055d32b202660fc64dbe","size":8866,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.2.0.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.2.0_1576531136715_0.7168225306658307"},"_hasShrinkwrap":false,"publish_time":1576531136820,"_cnpm_publish_time":1576531136820},"0.1.0":{"name":"@xstate/test","version":"0.1.0","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib tsconfig.tsbuildinfo","prebuild":"npm run clean","test":"jest --runInBand","build":"tsc","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.5.0"},"devDependencies":{"@types/jest":"^24.0.11","@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","ts-jest":"^24.0.2","typescript":"^3.5.3","xstate":"^4.7.0-rc1"},"dependencies":{"@xstate/graph":"^1.0.0-rc1.1","chalk":"^2.4.2"},"_id":"@xstate/test@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"dist":{"shasum":"b43eceb1b6f88acfac56c2d02d66464442921513","size":10464,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.1.0.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.1.0_1567181984194_0.10824192829798363"},"_hasShrinkwrap":false,"publish_time":1567181984376,"_cnpm_publish_time":1567181984376},"0.0.1":{"name":"@xstate/test","version":"0.0.1","description":"XState test utilities","keywords":["state","machine","statechart","scxml","state machine","model based testing","mbt","model","testing"],"author":{"name":"David Khourshid","email":"davidkpiano@gmail.com"},"homepage":"https://github.com/davidkpiano/xstate/tree/master/packages/xstate-test#readme","license":"MIT","main":"lib/index.js","sideEffects":false,"repository":{"type":"git","url":"git+ssh://git@github.com/davidkpiano/xstate.git"},"scripts":{"clean":"rm -rf dist lib tsconfig.tsbuildinfo","prebuild":"npm run clean","test":"jest --runInBand","build":"tsc","prepublish":"npm run build && npm run test"},"bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"peerDependencies":{"xstate":"^4.5.0"},"devDependencies":{"@types/jest":"^24.0.11","@types/jest-environment-puppeteer":"^4.0.0","jest":"^24.8.0","jest-environment-puppeteer":"^4.3.0","jest-puppeteer":"^4.3.0","lerna-alias":"3.0.3-0","puppeteer":"^1.19.0","ts-jest":"^24.0.2","typescript":"^3.5.3","xstate":"^4.6.7"},"dependencies":{"@xstate/graph":"^1.0.0-rc1.1"},"_id":"@xstate/test@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"davidkpiano","email":"davidkpiano@gmail.com"},"dist":{"shasum":"9b266da18b763bd988b05b42a3bef3415093c272","size":9680,"noattachment":false,"key":"/@xstate/test/-/@xstate/test-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@xstate/test/download/@xstate/test-0.0.1.tgz"},"maintainers":[{"name":"davidkpiano","email":"davidkpiano@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/test_0.0.1_1566568339172_0.8925052012518919"},"_hasShrinkwrap":false,"publish_time":1566568339290,"_cnpm_publish_time":1566568339290}},"readme":"# @xstate/test\n\nThis package contains utilities for facilitating [model-based testing](https://en.wikipedia.org/wiki/Model-based_testing) for any software.\n\n- [Read the full documentation in the XState docs](https://xstate.js.org/docs/packages/xstate-test/).\n- [Read our contribution guidelines](https://github.com/statelyai/xstate/blob/main/CONTRIBUTING.md).\n\n## Talk\n\n[Write Fewer Tests! From Automation to Autogeneration](https://slides.com/davidkhourshid/mbt) at React Rally 2019 ([???? Video](https://www.youtube.com/watch?v=tpNmPKjPSFQ))\n\n## Quick Start\n\n1. Install `xstate` and `@xstate/test`:\n\n```bash\nnpm install xstate @xstate/test\n```\n\n2. Create the machine that will be used to model the system under test (SUT):\n\n```js\nimport { createMachine } from 'xstate';\n\nconst toggleMachine = createMachine({\n  id: 'toggle',\n  initial: 'inactive',\n  states: {\n    inactive: {\n      on: {\n        TOGGLE: 'active'\n      }\n    },\n    active: {\n      on: {\n        TOGGLE: 'inactive'\n      }\n    }\n  }\n});\n```\n\n3. Add assertions for each state in the machine (in this example, using [Puppeteer](https://github.com/GoogleChrome/puppeteer)):\n\n```js\n// ...\n\nconst toggleMachine = createMachine({\n  id: 'toggle',\n  initial: 'inactive',\n  states: {\n    inactive: {\n      on: {\n        /* ... */\n      },\n      meta: {\n        test: async (page) => {\n          await page.waitFor('input:checked');\n        }\n      }\n    },\n    active: {\n      on: {\n        /* ... */\n      },\n      meta: {\n        test: async (page) => {\n          await page.waitFor('input:not(:checked)');\n        }\n      }\n    }\n  }\n});\n```\n\n4. Create the model:\n\n```js\nimport { createMachine } from 'xstate';\nimport { createModel } from '@xstate/test';\n\nconst toggleMachine = createMachine(/* ... */);\n\nconst toggleModel = createModel(toggleMachine).withEvents({\n  TOGGLE: {\n    exec: async (page) => {\n      await page.click('input');\n    }\n  }\n});\n```\n\n5. Create test plans and run the tests with coverage:\n\n```js\n// ...\n\ndescribe('toggle', () => {\n  const testPlans = toggleModel.getShortestPathPlans();\n\n  testPlans.forEach((plan) => {\n    describe(plan.description, () => {\n      plan.paths.forEach((path) => {\n        it(path.description, async () => {\n          // do any setup, then...\n\n          await path.test(page);\n        });\n      });\n    });\n  });\n\n  it('should have full coverage', () => {\n    return toggleModel.testCoverage();\n  });\n});\n```\n","_attachments":{},"homepage":"https://github.com/davidkpiano/xstate/tree/main/packages/xstate-test#readme","bugs":{"url":"https://github.com/davidkpiano/xstate/issues"},"license":"MIT"}