Best JavaScript code snippet using storybook-root
array-of-arrays-test.js
Source:array-of-arrays-test.js  
1import { expect } from "@hapi/code";2import * as Lab from "@hapi/lab";3import getHelper from "lab-testing";4import manyMappings from "./suites/many-mappings-suite";5import createMapper from "../lib";6import flattenDeep from "lodash.flattendeep";7const lab = exports.lab = Lab.script();8const testing = getHelper(lab);9const group = testing.createExperiment("arrays", "array of arrays");10const groups = ["arrays", "array of arrays"];11group("when mapping from a larger to a small array", () => {12  const src = {13    one: [{14      two: [15        { three: [{ value: "A" }, { value: "B" }] },16        { three: [{ value: "C" }, { value: "D" }] }17      ]18    },19    {20      two: [21        { three: [{ value: "A1" }, { value: "B1" }] },22        { three: [{ value: "C1" }, { value: "D1" }] }23      ]24    }]25  };26  const expected = {27    one: [28      { two: [{ value: "A" }, { value: "B" }, { value: "C" }, { value: "D" }] },29      { two: [{ value: "A1" }, { value: "B1" }, { value: "C1" }, { value: "D1" }] }30    ]31  };32  lab.test("or() mode works when the first get fails", () => {33    const mapper = createMapper();34    const actual = mapper35      .map("fish").or("one[].two[].three[].value").to("one[].two[].value")36      .execute(src);37    expect(actual).to.equal(expected);38  });39  lab.test("or() mode works when the second get succeeds", () => {40    const mapper = createMapper();41    const actual = mapper42      .map("one[].two[].three[].value").or("fish").to("one[].two[].value")43      .execute(src);44    expect(actual).to.equal(expected);45  });46  lab.test("missing data works as expected", () => {47    const emptySource = {48      one: [{ two: [{ three: [] }, { three: [] }, { three: null }, undefined, null] }]49    };50    const mapper = createMapper();51    const actual = mapper52      .map("one[].two[].three[]").to("one[].two[]")53      .execute(emptySource);54    expect(actual).to.equal({});55  });56});57group("with the flattenInverted option == true", () => {58  const src = [{59    one: [60      { name: "first", two: [{ value: "A" }, { value: "B" }] },61      { name: "second", two: [{ value: "C" }, { value: "D" }] }62    ]63  }, {64    one: [65      { name: "third", two: [{ value: "E" }, { value: "F" }] },66      { name: "fourth", two: [{ value: "G" }, { value: "H" }] }67    ]68  }];69  lab.test("a single level flatten works correctly", () => {70    const mapper = createMapper();71    const expected = [72      { name: "first", values: ["A", "B"] },73      { name: "second", values: ["C", "D"] },74      { name: "third", values: ["E", "F"] },75      { name: "fourth", values: ["G", "H"] }76    ];77    const options = { flattenInverted: true };78    mapper79      .map("[].one[].name").to("[].name")80      .map("[].one[].two[].value").with(options).to("[].values[]");81    const actual = mapper.execute(src);82    expect(actual).to.equal(expected);83  });84  lab.test("a two level flatting works correctly", () => {85    const mapper = createMapper();86    // The result whether flattened normally or inverted is the same87    const expected = ["A", "B", "C", "D", "E", "F", "G", "H"];88    const options = { flattenInverted: true };89    mapper90      .map("[].one[].two[].value").with(options).to("[]");91    const actual = mapper.execute(src);92    expect(actual).to.equal(expected);93  });94});95group("with the flatten option == false", () => {96  lab.test("a two level flatting works correctly", () => {97    const mapper = createMapper();98    const src = [{99      one: [100        { name: "first", two: [{ value: "A" }, { value: "B" }] },101        { name: "second", two: [{ value: "C" }, { value: "D" }] }102      ]103    }, {104      one: [105        { name: "third", two: [{ value: "E" }, { value: "F" }] },106        { name: "fourth", two: [{ value: "G" }, { value: "H" }] }107      ]108    }];109    // The result whether flattened normally or inverted is the same110    const expected = [[["A", "B"], ["C", "D"]], [["E", "F"], ["G", "H"]]];111    const options = { flatten: false };112    mapper113      .map("[].one[].two[].value").with(options).to("[]");114    const actual = mapper.execute(src);115    expect(actual).to.equal(expected);116  });117});118group("in multi-mode with array of arrays", () => {119  lab.test("array flattening is not applied", () => {120    const src = {121      one: [{122        two: [123          { three: [{ value: "A" }, { value: "B" }] },124          { three: [{ value: "C" }, { value: "D" }] }125        ]126      },127      {128        two: [129          { three: [{ value: "A1" }, { value: "B1" }] },130          { three: [{ value: "C1" }, { value: "D1" }] }131        ]132      }]133    };134    const expected = {135      result: [136        [["A", "B"], ["C", "D"]],137        [["A1", "B1"], ["C1", "D1"]]138      ]139    };140    const mapper = createMapper();141    const actual = mapper142      .map(["one[].two[].three[].value"]).to("result", item => item)143      .execute(src);144    expect(actual).to.equal(expected);145  });146});147const valueToValueTests = [148  {149    NAME: "1 level to 2 levels",150    SOURCE: {151      one: [{ value: "A" }, { value: "B" }]152    },153    EXPECTED: {154      one: [{ two: [{ value: "A" }, { value: "B" }] }]155    },156    MAPPINGS: [157      {158        from: "one[].value",159        to: "one[].two[].value"160      }]161  },162  {163    NAME: "2 levels to 1 level",164    SOURCE: {165      one: [166        { two: [{ value: "A" }, { value: "B" }] },167        { two: [{ value: "C" }, { value: "D" }] }168      ]169    },170    EXPECTED: {171      one: [{ value: "A" }, { value: "B" }, { value: "C" }, { value: "D" }]172    },173    MAPPINGS: [174      {175        from: "one[].two[].value",176        to: "one[].value"177      }]178  },179  {180    NAME: "2 levels to 2 levels",181    SOURCE: {182      one: [183        { two: [{ value: "A" }, { value: "B" }] },184        { two: [{ value: "C" }, { value: "D" }] }185      ]186    },187    EXPECTED: {188      one: [189        { two: [{ value: "A" }, { value: "B" }] },190        { two: [{ value: "C" }, { value: "D" }] }191      ]192    },193    MAPPINGS: [194      {195        from: "one[].two[].value",196        to: "one[].two[].value"197      }]198  },199  {200    NAME: "2 level to 3 levels",201    SOURCE: {202      one: [203        { two: [{ value: "A" }, { value: "B" }] },204        { two: [{ value: "C" }, { value: "D" }] }205      ]206    },207    EXPECTED: {208      one: [{209        two: [{ three: [{ value: "A" }, { value: "B" }] }]210      },211      {212        two: [{ three: [{ value: "C" }, { value: "D" }] }]213      }]214    },215    MAPPINGS: [216      {217        from: "one[].two[].value",218        to: "one[].two[].three[].value"219      }]220  },221  {222    NAME: "3 level to 2 levels",223    SOURCE: {224      one: [{225        two: [226          { three: [{ value: "A" }, { value: "B" }] },227          { three: [{ value: "C" }, { value: "D" }] }228        ]229      },230      {231        two: [232          { three: [{ value: "A1" }, { value: "B1" }] },233          { three: [{ value: "C1" }, { value: "D1" }] }234        ]235      }]236    },237    EXPECTED: {238      one: [239        { two: [{ value: "A" }, { value: "B" }, { value: "C" }, { value: "D" }] },240        { two: [{ value: "A1" }, { value: "B1" }, { value: "C1" }, { value: "D1" }] }241      ]242    },243    MAPPINGS: [244      {245        from: "one[].two[].three[].value",246        to: "one[].two[].value"247      }]248  },249  {250    NAME: "3 level to 1 levels",251    SOURCE: {252      one: [{253        two: [254          { three: [{ value: "A" }, { value: "B" }] },255          { three: [{ value: "C" }, { value: "D" }] }256        ]257      },258      {259        two: [260          { three: [{ value: "A1" }, { value: "B1" }] },261          { three: [{ value: "C1" }, { value: "D1" }] }262        ]263      }]264    },265    EXPECTED: {266      one: [267        { value: "A" },268        { value: "B" },269        { value: "C" },270        { value: "D" },271        { value: "A1" },272        { value: "B1" },273        { value: "C1" },274        { value: "D1" }275      ]276    },277    MAPPINGS: [278      {279        from: "one[].two[].three[].value",280        to: "one[].value"281      }]282  }283];284valueToValueTests.map(({ NAME, SOURCE, EXPECTED, MAPPINGS }) => {285  const labels = flattenDeep([groups, ["with value source and value target", NAME]]);286  manyMappings.run(lab, {287    LABELS: labels, SOURCE, EXPECTED, MAPPINGS, MULTI_MODE: false288  });289});290const valueToArrayTests = [291  {292    NAME: "1 level to 2 levels",293    SOURCE: {294      one: [{ value: "A" }, { value: "B" }]295    },296    EXPECTED: {297      one: [{ two: ["A", "B"] }]298    },299    MAPPINGS: [300      {301        from: "one[].value",302        to: "one[].two[]"303      }]304  },305  {306    NAME: "2 levels to 1 levels",307    SOURCE: {308      one: [309        { two: [{ value: "A" }, { value: "B" }] },310        { two: [{ value: "C" }, { value: "D" }] }311      ]312    },313    EXPECTED: {314      one: ["A", "B", "C", "D"]315    },316    MAPPINGS: [317      {318        from: "one[].two[].value",319        to: "one[]"320      }]321  },322  {323    NAME: "2 levels to 2 levels",324    SOURCE: {325      one: [326        { two: [{ value: "A" }, { value: "B" }] },327        { two: [{ value: "C" }, { value: "D" }] }328      ]329    },330    EXPECTED: {331      one: [{ two: ["A", "B"] }, { two: ["C", "D"] }]332    },333    MAPPINGS: [334      {335        from: "one[].two[].value",336        to: "one[].two[]"337      }]338  },339  {340    NAME: "2 level to 3 levels",341    SOURCE: {342      one: [343        { two: [{ value: "A" }, { value: "B" }] },344        { two: [{ value: "C" }, { value: "D" }] }345      ]346    },347    EXPECTED: {348      one: [{349        two: [{ three: ["A", "B"] }]350      },351      {352        two: [{ three: ["C", "D"] }]353      }]354    },355    MAPPINGS: [356      {357        from: "one[].two[].value",358        to: "one[].two[].three[]"359      }]360  },361  {362    NAME: "3 level to 2 levels",363    SOURCE: {364      one: [{365        two: [366          { three: [{ value: "A" }, { value: "B" }] },367          { three: [{ value: "C" }, { value: "D" }] }368        ]369      },370      {371        two: [372          { three: [{ value: "A1" }, { value: "B1" }] },373          { three: [{ value: "C1" }, { value: "D1" }] }374        ]375      }]376    },377    EXPECTED: {378      one: [{ two: ["A", "B", "C", "D"] }, { two: ["A1", "B1", "C1", "D1"] }]379    },380    MAPPINGS: [381      {382        from: "one[].two[].three[].value",383        to: "one[].two[]"384      }]385  },386  {387    NAME: "3 level to 1 level",388    SOURCE: {389      one: [{390        two: [391          { three: [{ value: "A" }, { value: "B" }] },392          { three: [{ value: "C" }, { value: "D" }] }393        ]394      },395      {396        two: [397          { three: [{ value: "A1" }, { value: "B1" }] },398          { three: [{ value: "C1" }, { value: "D1" }] }399        ]400      }]401    },402    EXPECTED: {403      one: ["A", "B", "C", "D", "A1", "B1", "C1", "D1"]404    },405    MAPPINGS: [406      {407        from: "one[].two[].three[].value",408        to: "one[]"409      }]410  },411  {412    NAME: "3 level to 0 level",413    SOURCE: {414      one: [{415        two: [416          { three: [{ value: "A" }, { value: "B" }] },417          { three: [{ value: "C" }, { value: "D" }] }418        ]419      },420      {421        two: [422          { three: [{ value: "A1" }, { value: "B1" }] },423          { three: [{ value: "C1" }, { value: "D1" }] }424        ]425      }]426    },427    EXPECTED: ["A", "B", "C", "D", "A1", "B1", "C1", "D1"],428    MAPPINGS: [429      {430        from: "one[].two[].three[].value",431        to: "[]"432      }]433  }434];435valueToArrayTests.map(({ NAME, SOURCE, EXPECTED, MAPPINGS }) => {436  const labels = flattenDeep([groups, ["with value source and with array target", NAME]]);437  manyMappings.run(lab, {438    LABELS: labels, SOURCE, EXPECTED, MAPPINGS, MULTI_MODE: false439  });440});441const arrayToValueTests = [442  {443    NAME: "1 level to 2 levels",444    SOURCE: {445      one: ["A", "B"]446    },447    EXPECTED: {448      one: [{ two: [{ value: "A" }, { value: "B" }] }]449    },450    MAPPINGS: [451      {452        from: "one[]",453        to: "one[].two[].value"454      }]455  },456  {457    NAME: "2 levels to 1 level",458    SOURCE: {459      one: [460        { two: ["A", "B"] },461        { two: ["C", "D"] }462      ]463    },464    EXPECTED: {465      one: [{ value: "A" }, { value: "B" }, { value: "C" }, { value: "D" }]466    },467    MAPPINGS: [468      {469        from: "one[].two[]",470        to: "one[].value"471      }]472  },473  {474    NAME: "2 levels to 2 levels",475    SOURCE: {476      one: [477        { two: ["A", "B"] },478        { two: ["C", "D"] }479      ]480    },481    EXPECTED: {482      one: [483        { two: [{ value: "A" }, { value: "B" }] },484        { two: [{ value: "C" }, { value: "D" }] }485      ]486    },487    MAPPINGS: [488      {489        from: "one[].two[]",490        to: "one[].two[].value"491      }]492  },493  {494    NAME: "2 level to 3 levels",495    SOURCE: {496      one: [497        { two: ["A", "B"] },498        { two: ["C", "D"] }499      ]500    },501    EXPECTED: {502      one: [{503        two: [{ three: [{ value: "A" }, { value: "B" }] }]504      },505      {506        two: [{ three: [{ value: "C" }, { value: "D" }] }]507      }]508    },509    MAPPINGS: [510      {511        from: "one[].two[]",512        to: "one[].two[].three[].value"513      }]514  },515  {516    NAME: "3 level to 2 levels",517    SOURCE: {518      one: [{519        two: [520          { three: ["A", "B"] },521          { three: ["C", "D"] }522        ]523      },524      {525        two: [526          { three: ["A1", "B1"] },527          { three: ["C1", "D1"] }528        ]529      }]530    },531    EXPECTED: {532      one: [533        { two: [{ value: "A" }, { value: "B" }, { value: "C" }, { value: "D" }] },534        { two: [{ value: "A1" }, { value: "B1" }, { value: "C1" }, { value: "D1" }] }535      ]536    },537    MAPPINGS: [538      {539        from: "one[].two[].three[]",540        to: "one[].two[].value"541      }]542  },543  {544    NAME: "3 level to 1 levels",545    SOURCE: {546      one: [{547        two: [548          { three: ["A", "B"] },549          { three: ["C", "D"] }550        ]551      },552      {553        two: [554          { three: ["A1", "B1"] },555          { three: ["C1", "D1"] }556        ]557      }]558    },559    EXPECTED: {560      one: [561        { value: "A" },562        { value: "B" },563        { value: "C" },564        { value: "D" },565        { value: "A1" },566        { value: "B1" },567        { value: "C1" },568        { value: "D1" }569      ]570    },571    MAPPINGS: [572      {573        from: "one[].two[].three[]",574        to: "one[].value"575      }]576  }577];578arrayToValueTests.map(({ NAME, SOURCE, EXPECTED, MAPPINGS }) => {579  const labels = flattenDeep([groups, ["with array source and value target", NAME]]);580  manyMappings.run(lab, {581    LABELS: labels, SOURCE, EXPECTED, MAPPINGS, MULTI_MODE: false582  });583});584const arrayToArrayTests = [585  {586    NAME: "1 level to 2 levels",587    SOURCE: {588      one: ["A", "B"]589    },590    EXPECTED: {591      one: [{ two: ["A", "B"] }]592    },593    MAPPINGS: [594      {595        from: "one[]",596        to: "one[].two[]"597      }]598  },599  {600    NAME: "2 levels to 1 levels",601    SOURCE: {602      one: [603        { two: ["A", "B"] },604        { two: ["C", "D"] }605      ]606    },607    EXPECTED: {608      one: ["A", "B", "C", "D"]609    },610    MAPPINGS: [611      {612        from: "one[].two[]",613        to: "one[]"614      }]615  },616  {617    NAME: "2 levels to 2 levels",618    SOURCE: {619      one: [620        { two: ["A", "B"] },621        { two: ["C", "D"] }622      ]623    },624    EXPECTED: {625      one: [{ two: ["A", "B"] }, { two: ["C", "D"] }]626    },627    MAPPINGS: [628      {629        from: "one[].two[]",630        to: "one[].two[]"631      }]632  },633  {634    NAME: "2 level to 3 levels",635    SOURCE: {636      one: [637        { two: ["A", "B"] },638        { two: ["C", "D"] }639      ]640    },641    EXPECTED: {642      one: [{643        two: [{ three: ["A", "B"] }]644      },645      {646        two: [{ three: ["C", "D"] }]647      }]648    },649    MAPPINGS: [650      {651        from: "one[].two[]",652        to: "one[].two[].three[]"653      }]654  },655  {656    NAME: "3 level to 2 levels",657    SOURCE: {658      one: [{659        two: [660          { three: ["A", "B"] },661          { three: ["C", "D"] }662        ]663      },664      {665        two: [666          { three: ["A1", "B1"] },667          { three: ["C1", "D1"] }668        ]669      }]670    },671    EXPECTED: {672      one: [{ two: ["A", "B", "C", "D"] }, { two: ["A1", "B1", "C1", "D1"] }]673    },674    MAPPINGS: [675      {676        from: "one[].two[].three[]",677        to: "one[].two[]"678      }]679  },680  {681    NAME: "3 level to 1 level",682    SOURCE: {683      one: [{684        two: [685          { three: ["A", "B"] },686          { three: ["C", "D"] }687        ]688      },689      {690        two: [691          { three: ["A1", "B1"] },692          { three: ["C1", "D1"] }693        ]694      }]695    },696    EXPECTED: {697      one: ["A", "B", "C", "D", "A1", "B1", "C1", "D1"]698    },699    MAPPINGS: [700      {701        from: "one[].two[].three[]",702        to: "one[]"703      }]704  }705];706arrayToArrayTests.map(({ NAME, SOURCE, EXPECTED, MAPPINGS }) => {707  const labels = flattenDeep([groups, ["with array source and with array target", NAME]]);708  manyMappings.run(lab, {709    LABELS: labels, SOURCE, EXPECTED, MAPPINGS, MULTI_MODE: false710  });711});712// Data for parent and child tests713const source = {714  foo: [715    { "name": "a", "things": ["a1", "a2"] },716    { "name": "b", "things": ["b1", "b2"] }717  ]718};719const expected = {720  bar: [{721    label: "a",722    values: ["a1", "a2"]723  },724  {725    label: "b",726    values: ["b1", "b2"]727  }728  ]729};730manyMappings.run(lab, {731  LABELS: ["arrays", "array of arrays", "parent and child - normal order"],732  MAPPINGS: [733    { from: "foo[].name", to: "bar[].label" },734    { from: "foo[].things[]", to: "bar[].values[]" }735  ],736  SOURCE: source,737  EXPECTED: expected738});739manyMappings.run(lab, {740  LABELS: ["arrays", "array of arrays", "parent and child - inverted order"],741  MAPPINGS: [742    { from: "foo[].things[]", to: "bar[].values[]" },743    { from: "foo[].name", to: "bar[].label" }744  ],745  SOURCE: source,746  EXPECTED: expected...sorting.t
Source:sorting.t  
1#!/usr/bin/env python2.72# -*- coding: utf-8 -*-3###############################################################################4#5# Copyright 2006 - 2016, Paul Beckingham, Federico Hernandez.6#7# Permission is hereby granted, free of charge, to any person obtaining a copy8# of this software and associated documentation files (the "Software"), to deal9# in the Software without restriction, including without limitation the rights10# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell11# copies of the Software, and to permit persons to whom the Software is12# furnished to do so, subject to the following conditions:13#14# The above copyright notice and this permission notice shall be included15# in all copies or substantial portions of the Software.16#17# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS18# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,19# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL20# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER21# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,22# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE23# SOFTWARE.24#25# http://www.opensource.org/licenses/mit-license.php26#27###############################################################################28import sys29import os30import re31import unittest32import time33# Ensure python finds the local simpletap module34sys.path.append(os.path.dirname(os.path.abspath(__file__)))35from basetest import Task, TestCase36from basetest.meta import MetaTest37class MetaTestSorting(MetaTest):38    """Helper metaclass to simplify test logic below (TestSorting)39    Creates test_methods in the TestCase class dynamically named after the40    filter used.41    """42    @staticmethod43    def make_function(classname, *args, **kwargs):44        _filter, expectations = args45        def test(self):46            # ### Body of the usual test_testcase ### #47            code, out, err = self.t(48                "rc.report.{0}.sort:{1} {0}".format(self._report, _filter)49            )50            for expected in expectations:51                regex = re.compile(expected, re.DOTALL)52                self.assertRegexpMatches(out, regex)53        # Title of test in report54        test.__doc__ = "{0} sort:{1}".format(classname, _filter)55        return test56class TestSorting(TestCase):57    __metaclass__ = MetaTestSorting58    @classmethod59    def setUpClass(cls):60        cls.t = Task()61        # Report to use when running this class's tests62        cls._report = "list"63        cls.t("add                                    zero")64        cls.t("add priority:H project:A due:yesterday one")65        cls.t("add priority:M project:B due:today     two")66        cls.t("add priority:L project:C due:tomorrow  three")67        cls.t("add priority:H project:C due:today     four")68        cls.t("2 start")69    TESTS = (70        # Filter                           # Expected matches/outputs71        # Single sort column.72        ('priority-',                       ('(?:one.+four|four.+one).+two.+three.+zero',)),73        ('priority+',                       ('zero.+three.+two.+(?:one.+four|four.+one)',)),74        ('project-',                        ('(?:three.+four|four.+three).+two.+one.+zero',)),75        ('project+',                        ('zero.+one.+two.+(?:three.+four|four.+three)',)),76        ('start-',                          ('one.+zero', 'one.+two', 'one.+three', 'one.+four',)),77        ('start+',                          ('one.+zero', 'one.+two', 'one.+three', 'one.+four',)),78        ('due-',                            ('three.+(?:two.+four|four.+two).+one.+zero',)),79        ('due+',                            ('one.+(?:two.+four|four.+two).+three.+zero',)),80        ('description-',                    ('zero.+two.+three.+one.+four',)),81        ('description+',                    ('four.+one.+three.+two.+zero',)),82        # Two sort columns.83        ('priority-,project-',              ('four.+one.+two.+three.+zero',)),84        ('priority-,project+',              ('one.+four.+two.+three.+zero',)),85        ('priority+,project-',              ('zero.+three.+two.+four.+one',)),86        ('priority+,project+',              ('zero.+three.+two.+one.+four',)),87        ('priority-,start-',                ('one.+four.+two.+three.+zero',)),88        ('priority-,start+',                ('one.+four.+two.+three.+zero',)),89        ('priority+,start-',                ('zero.+three.+two.+one.+four',)),90        ('priority+,start+',                ('zero.+three.+two.+one.+four',)),91        ('priority-,due-',                  ('four.+one.+two.+three.+zero',)),92        ('priority-,due+',                  ('one.+four.+two.+three.+zero',)),93        ('priority+,due-',                  ('zero.+three.+two.+four.+one',)),94        ('priority+,due+',                  ('zero.+three.+two.+one.+four',)),95        ('priority-,description-',          ('one.+four.+two.+three.+zero',)),96        ('priority-,description+',          ('four.+one.+two.+three.+zero',)),97        ('priority+,description-',          ('zero.+three.+two.+one.+four',)),98        ('priority+,description+',          ('zero.+three.+two.+four.+one',)),99        ('project-,priority-',              ('four.+three.+two.+one.+zero',)),100        ('project-,priority+',              ('three.+four.+two.+one.+zero',)),101        ('project+,priority-',              ('zero.+one.+two.+four.+three',)),102        ('project+,priority+',              ('zero.+one.+two.+three.+four',)),103        ('project-,start-',                 ('three.+four.+two.+one.+zero',)),104        ('project-,start+',                 ('(?:four.+three|three.+four).+two.+one.+zero',)),105        ('project+,start-',                 ('zero.+one.+two.+three.+four',)),106        ('project+,start+',                 ('zero.+one.+two.+(?:four.+three|three.+four)',)),107        ('project-,due-',                   ('three.+four.+two.+one.+zero',)),108        ('project-,due+',                   ('four.+three.+two.+one.+zero',)),109        ('project+,due-',                   ('zero.+one.+two.+three.+four',)),110        ('project+,due+',                   ('zero.+one.+two.+four.+three',)),111        ('project-,description-',           ('three.+four.+two.+one.+zero',)),112        ('project-,description+',           ('four.+three.+two.+one.+zero',)),113        ('project+,description-',           ('zero.+one.+two.+three.+four',)),114        ('project+,description+',           ('zero.+one.+two.+four.+three',)),115        ('start-,priority-',                ('one.+four.+two.+three.+zero',)),116        ('start-,priority+',                ('one.+zero.+three.+two.+four',)),117        ('start+,priority-',                ('one.+four.+two.+three.+zero',)),118        ('start+,priority+',                ('one.+zero.+three.+two.+four',)),119        ('start-,project-',                 ('one.+(?:three.+four|four.+three).+two.+zero',)),120        ('start-,project+',                 ('one.+zero.+two.+(?:three.+four|four.+three)',)),121        ('start+,project-',                 ('one.+(?:three.+four|four.+three).+two.+zero',)),122        ('start+,project+',                 ('one.+zero.+two.+(?:three.+four|four.+three)',)),123        ('start-,due-',                     ('one.+three.+(?:four.+two|two.+four).+zero',)),124        ('start-,due+',                     ('one.+(?:four.+two|two.+four).+three.+zero',)),125        ('start+,due-',                     ('one.+three.+(?:four.+two|two.+four).+zero',)),126        ('start+,due+',                     ('one.+(?:four.+two|two.+four).+three.+zero',)),127        ('start-,description-',             ('one.+zero.+two.+three.+four',)),128        ('start-,description+',             ('one.+four.+three.+two.+zero',)),129        ('start+,description-',             ('one.+zero.+two.+three.+four',)),130        ('start+,description+',             ('one.+four.+three.+two.+zero',)),131        ('due-,priority-',                  ('three.+four.+two.+one.+zero',)),132        ('due-,priority+',                  ('three.+two.+four.+one.+zero',)),133        ('due+,priority-',                  ('one.+four.+two.+three.+zero',)),134        ('due+,priority+',                  ('one.+two.+four.+three.+zero',)),135        ('due-,project-',                   ('three.+four.+two.+one.+zero',)),136        ('due-,project+',                   ('three.+two.+four.+one.+zero',)),137        ('due+,project-',                   ('one.+four.+two.+three.+zero',)),138        ('due+,project+',                   ('one.+two.+four.+three.+zero',)),139        ('due-,start-',                     ('three.+(?:four.+two|two.+four).+one.+zero',)),140        ('due-,start+',                     ('three.+(?:four.+two|two.+four).+one.+zero',)),141        ('due+,start-',                     ('one.+(?:four.+two|two.+four).+three.+zero',)),142        ('due+,start+',                     ('one.+(?:four.+two|two.+four).+three.+zero',)),143        ('due-,description-',               ('three.+two.+four.+one.+zero',)),144        ('due-,description+',               ('three.+four.+two.+one.+zero',)),145        ('due+,description-',               ('one.+two.+four.+three.+zero',)),146        ('due+,description+',               ('one.+four.+two.+three.+zero',)),147        ('description-,priority-',          ('zero.+two.+three.+one.+four',)),148        ('description-,priority+',          ('zero.+two.+three.+one.+four',)),149        ('description+,priority-',          ('four.+one.+three.+two.+zero',)),150        ('description+,priority+',          ('four.+one.+three.+two.+zero',)),151        ('description-,project-',           ('zero.+two.+three.+one.+four',)),152        ('description-,project+',           ('zero.+two.+three.+one.+four',)),153        ('description+,project-',           ('four.+one.+three.+two.+zero',)),154        ('description+,project+',           ('four.+one.+three.+two.+zero',)),155        ('description-,start-',             ('zero.+two.+three.+one.+four',)),156        ('description-,start+',             ('zero.+two.+three.+one.+four',)),157        ('description+,start-',             ('four.+one.+three.+two.+zero',)),158        ('description+,start+',             ('four.+one.+three.+two.+zero',)),159        ('description-,due-',               ('zero.+two.+three.+one.+four',)),160        ('description-,due+',               ('zero.+two.+three.+one.+four',)),161        ('description+,due-',               ('four.+one.+three.+two.+zero',)),162        ('description+,due+',               ('four.+one.+three.+two.+zero',)),163        # Four sort columns.164        ('start+,project+,due+,priority+',  ('one.+zero.+two.+four.+three',)),165        ('project+,due+,priority+,start+',  ('zero.+one.+two.+four.+three',)),166    )167class TestBug438(TestCase):168    __metaclass__ = MetaTestSorting169    # Bug #438: Reports sorting by end, start, and entry are ordered170    #           incorrectly, if time is included.171    @classmethod172    def setUpClass(cls):173        cls.t = Task()174        # Report to use when running this class's tests175        cls._report = "foo"176        cls.t.config("dateformat", "SNHDMY")177        cls.t.config("report.foo.columns", "entry,start,end,description")178        cls.t.config("report.foo.dateformat", "SNHDMY")179        # Preparing data:180        #  2 tasks created in the past, 1 second apart181        #  2 tasks created in the past, and started 10 seconds later182        #  2 tasks created in the past, and finished 20 seconds later183        stamp = int(time.time())184        cls.t("add one older entry:{0}".format(stamp))185        stamp += 1186        cls.t("add one newer entry:{0}".format(stamp))187        start = stamp + 10188        cls.t("add two older entry:{0} start:{1}".format(stamp, start))189        start += 1190        cls.t("add two newer entry:{0} start:{1}".format(stamp, start))191        end = start + 10192        cls.t("log three older entry:{0} end:{1}".format(stamp, end))193        end += 1194        cls.t("log three newer entry:{0} end:{1}".format(stamp, end))195    TESTS = {196        ("entry+", ("one older.+one newer",)),197        ("entry-", ("one newer.+one older",)),198        ("start+", ("two older.+two newer",)),199        ("start-", ("two newer.+two older",)),200        ("end+",   ("three older.+three newer",)),201        ("end-",   ("three newer.+three older",)),202    }203class TestSortNone(TestCase):204    def setUp(self):205        self.t = Task()206    def test_sort_none(self):207        """Verify that 'sort:none' removes all sorting"""208        self.t("add one")209        self.t("add two")210        self.t("add three")211        code, out, err = self.t("_get 1.uuid 2.uuid 3.uuid")212        uuid1, uuid2, uuid3 = out.strip().split(' ')213        code, out, err = self.t("%s %s %s list rc.report.list.sort:none rc.report.list.columns:id,description rc.report.list.labels:id,desc" % (uuid2, uuid3, uuid1))214        self.assertRegexpMatches(out, ' 2 two\n 3 three\n 1 one')215if __name__ == "__main__":216    from simpletap import TAPTestRunner217    unittest.main(testRunner=TAPTestRunner())...challenge-1.py
Source:challenge-1.py  
1"""2This is a dumb calculator that can add and subtract whole numbers from zero to five.3When you run the code, you are prompted to enter two numbers (in the form of English4word instead of number) and the operator sign (also in the form of English word).5The code will perform the calculation and give the result if your input is what it6expects.7The code is very long and messy. Refactor it according to what you have learned about8code simplicity and efficiency.9"""10print('Welcome to this calculator!')11print('It can add and subtract whole numbers from zero to five')12a = input('Please choose your first number (zero to five): ')13b = input('What do you want to do? plus or minus: ')14c = input('Please choose your second number (zero to five): ')15if a == 'zero' and b == 'plus'  and c == 'zero':16    print("zero plus zero equals zero")17if a == 'zero' and b == 'plus'  and c == 'one':18    print("zero plus one equals one")19if a == 'zero' and b == 'plus'  and c == 'two':20    print("zero plus two equals two")21if a == 'zero' and b == 'plus'  and c == 'three':22    print("zero plus three equals three")23if a == 'zero' and b == 'plus'  and c == 'four':24    print("zero plus four equals four")25if a == 'zero' and b == 'plus'  and c == 'five':26    print("zero plus five equals five")27if a == 'one' and b == 'plus'  and c == 'zero':28    print("one plus zero equals one")29if a == 'one' and b == 'plus'  and c == 'one':30    print("one plus one equals two")31if a == 'one' and b == 'plus'  and c == 'two':32    print("one plus two equals three")33if a == 'one' and b == 'plus'  and c == 'three':34    print("one plus three equals four")35if a == 'one' and b == 'plus'  and c == 'four':36    print("one plus four equals five")37if a == 'one' and b == 'plus'  and c == 'five':38    print("one plus five equals six")39if a == 'two' and b == 'plus'  and c == 'zero':40    print("two plus zero equals two")41if a == 'two' and b == 'plus'  and c == 'one':42    print("two plus one equals three")43if a == 'two' and b == 'plus'  and c == 'two':44    print("two plus two equals four")45if a == 'two' and b == 'plus'  and c == 'three':46    print("two plus three equals five")47if a == 'two' and b == 'plus'  and c == 'four':48    print("two plus four equals six")49if a == 'two' and b == 'plus'  and c == 'five':50    print("two plus five equals seven")51if a == 'three' and b == 'plus'  and c == 'zero':52    print("three plus zero equals three")53if a == 'three' and b == 'plus'  and c == 'one':54    print("three plus one equals four")55if a == 'three' and b == 'plus'  and c == 'two':56    print("three plus two equals five")57if a == 'three' and b == 'plus'  and c == 'three':58    print("three plus three equals six")59if a == 'three' and b == 'plus'  and c == 'four':60    print("three plus four equals seven")61if a == 'three' and b == 'plus'  and c == 'five':62    print("three plus five equals eight")63if a == 'four' and b == 'plus'  and c == 'zero':64    print("four plus zero equals four")65if a == 'four' and b == 'plus'  and c == 'one':66    print("four plus one equals five")67if a == 'four' and b == 'plus'  and c == 'two':68    print("four plus two equals six")69if a == 'four' and b == 'plus'  and c == 'three':70    print("four plus three equals seven")71if a == 'four' and b == 'plus'  and c == 'four':72    print("four plus four equals eight")73if a == 'four' and b == 'plus'  and c == 'five':74    print("four plus five equals nine")75if a == 'five' and b == 'plus'  and c == 'zero':76    print("five plus zero equals five")77if a == 'five' and b == 'plus'  and c == 'one':78    print("five plus one equals six")79if a == 'five' and b == 'plus'  and c == 'two':80    print("five plus two equals seven")81if a == 'five' and b == 'plus'  and c == 'three':82    print("five plus three equals eight")83if a == 'five' and b == 'plus'  and c == 'four':84    print("five plus four equals nine")85if a == 'five' and b == 'plus'  and c == 'five':86    print("five plus five equals ten")87if a == 'zero' and b == 'minus' and c == 'zero':88    print("zero minus zero equals zero")89if a == 'zero' and b == 'minus' and c == 'one':90    print("zero minus one equals negative one")91if a == 'zero' and b == 'minus' and c == 'two':92    print("zero minus two equals negative two")93if a == 'zero' and b == 'minus' and c == 'three':94    print("zero minus three equals negative three")95if a == 'zero' and b == 'minus' and c == 'four':96    print("zero minus four equals negative four")97if a == 'zero' and b == 'minus' and c == 'five':98    print("zero minus five equals negative five")99if a == 'one' and b == 'minus' and c == 'zero':100    print("one minus zero equals one")101if a == 'one' and b == 'minus' and c == 'one':102    print("one minus one equals zero")103if a == 'one' and b == 'minus' and c == 'two':104    print("one minus two equals negative one")105if a == 'one' and b == 'minus' and c == 'three':106    print("one minus three equals negative three")107if a == 'one' and b == 'minus' and c == 'four':108    print("one minus four equals negative three")109if a == 'one' and b == 'minus' and c == 'five':110    print("one minus five equals negative four")111if a == 'two' and b == 'minus' and c == 'zero':112    print("two minus zero equals two")113if a == 'two' and b == 'minus' and c == 'one':114    print("two minus one equals one")115if a == 'two' and b == 'minus' and c == 'two':116    print("two minus two equals zero")117if a == 'two' and b == 'minus' and c == 'three':118    print("two minus three equals negative one")119if a == 'two' and b == 'minus' and c == 'four':120    print("two minus four equals negative two")121if a == 'two' and b == 'minus' and c == 'five':122    print("two minus five equals negative three")123if a == 'three' and b == 'minus' and c == 'zero':124    print("three minus zero equals three")125if a == 'three' and b == 'minus' and c == 'one':126    print("three minus one equals two")127if a == 'three' and b == 'minus' and c == 'two':128    print("three minus two equals one")129if a == 'three' and b == 'minus' and c == 'three':130    print("three minus three equals zero")131if a == 'three' and b == 'minus' and c == 'four':132    print("three minus four equals negative one")133if a == 'three' and b == 'minus' and c == 'five':134    print("three minus five equals negative two")135if a == 'four' and b == 'minus' and c == 'zero':136    print("four minus zero equals four")137if a == 'four' and b == 'minus' and c == 'one':138    print("four minus one equals three")139if a == 'four' and b == 'minus' and c == 'two':140    print("four minus two equals two")141if a == 'four' and b == 'minus' and c == 'three':142    print("four minus three equals one")143if a == 'four' and b == 'minus' and c == 'four':144    print("four minus four equals zero")145if a == 'four' and b == 'minus' and c == 'five':146    print("four minus five equals negative one")147if a == 'five' and b == 'minus' and c == 'zero':148    print("five minus zero equals five")149if a == 'five' and b == 'minus' and c == 'one':150    print("five minus one equals four")151if a == 'five' and b == 'minus' and c == 'two':152    print("five minus two equals three")153if a == 'five' and b == 'minus' and c == 'three':154    print("five minus three equals two")155if a == 'five' and b == 'minus' and c == 'four':156    print("five minus four equals one")157if a == 'five' and b == 'minus' and c == 'five':158    print("five minus five equals zero")159if (not a == 'zero' and not a == 'one' and not a == 'two' and not a == 'three' and not a == 'four' and not a == 'five') or (not c == 'zero' and not c == 'one' and not c == 'two' and not c == 'three' and not c == 'four' and not c == 'five') or (not b == 'plus' and not b == 'minus'):160    print("I am not able to answer this question. Check your input.")...math-floor-local.js
Source:math-floor-local.js  
1// Copyright 2012 the V8 project authors. All rights reserved.2// Redistribution and use in source and binary forms, with or without3// modification, are permitted provided that the following conditions are4// met:5//6//     * Redistributions of source code must retain the above copyright7//       notice, this list of conditions and the following disclaimer.8//     * Redistributions in binary form must reproduce the above9//       copyright notice, this list of conditions and the following10//       disclaimer in the documentation and/or other materials provided11//       with the distribution.12//     * Neither the name of Google Inc. nor the names of its13//       contributors may be used to endorse or promote products derived14//       from this software without specific prior written permission.15//16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS17// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT18// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR19// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT20// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,21// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT22// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,23// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY24// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT25// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE26// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.27// Flags: --max-semi-space-size=1 --allow-natives-syntax28// Test inlining of Math.floor when assigned to a local.29var test_id = 0;30function testFloor(expect, input) {31  var test = new Function('n',32                          '"' + (test_id++) +33                          '";var f = Math.floor; return f(n)');34  assertEquals(expect, test(input));35  assertEquals(expect, test(input));36  assertEquals(expect, test(input));37  %OptimizeFunctionOnNextCall(test);38  assertEquals(expect, test(input));39}40function zero() {41  var x = 0.5;42  return (function() { return x - 0.5; })();43}44function test() {45  testFloor(0, 0);46  testFloor(0, zero());47  testFloor(-0, -0);48  testFloor(Infinity, Infinity);49  testFloor(-Infinity, -Infinity);50  testFloor(NaN, NaN);51  // Ensure that a negative zero coming from Math.floor is properly handled52  // by other operations.53  function ifloor(x) {54    return 1 / Math.floor(x);55  }56  assertEquals(-Infinity, ifloor(-0));57  assertEquals(-Infinity, ifloor(-0));58  assertEquals(-Infinity, ifloor(-0));59  %OptimizeFunctionOnNextCall(ifloor);60  assertEquals(-Infinity, ifloor(-0));61  testFloor(0, 0.1);62  testFloor(0, 0.49999999999999994);63  testFloor(0, 0.5);64  testFloor(0, 0.7);65  testFloor(-1, -0.1);66  testFloor(-1, -0.49999999999999994);67  testFloor(-1, -0.5);68  testFloor(-1, -0.7);69  testFloor(1, 1);70  testFloor(1, 1.1);71  testFloor(1, 1.5);72  testFloor(1, 1.7);73  testFloor(-1, -1);74  testFloor(-2, -1.1);75  testFloor(-2, -1.5);76  testFloor(-2, -1.7);77  testFloor(0, Number.MIN_VALUE);78  testFloor(-1, -Number.MIN_VALUE);79  testFloor(Number.MAX_VALUE, Number.MAX_VALUE);80  testFloor(-Number.MAX_VALUE, -Number.MAX_VALUE);81  testFloor(Infinity, Infinity);82  testFloor(-Infinity, -Infinity);83  // 2^30 is a smi boundary.84  var two_30 = 1 << 30;85  testFloor(two_30, two_30);86  testFloor(two_30, two_30 + 0.1);87  testFloor(two_30, two_30 + 0.5);88  testFloor(two_30, two_30 + 0.7);89  testFloor(two_30 - 1, two_30 - 1);90  testFloor(two_30 - 1, two_30 - 1 + 0.1);91  testFloor(two_30 - 1, two_30 - 1 + 0.5);92  testFloor(two_30 - 1, two_30 - 1 + 0.7);93  testFloor(-two_30, -two_30);94  testFloor(-two_30, -two_30 + 0.1);95  testFloor(-two_30, -two_30 + 0.5);96  testFloor(-two_30, -two_30 + 0.7);97  testFloor(-two_30 + 1, -two_30 + 1);98  testFloor(-two_30 + 1, -two_30 + 1 + 0.1);99  testFloor(-two_30 + 1, -two_30 + 1 + 0.5);100  testFloor(-two_30 + 1, -two_30 + 1 + 0.7);101  // 2^52 is a precision boundary.102  var two_52 = (1 << 30) * (1 << 22);103  testFloor(two_52, two_52);104  testFloor(two_52, two_52 + 0.1);105  assertEquals(two_52, two_52 + 0.5);106  testFloor(two_52, two_52 + 0.5);107  assertEquals(two_52 + 1, two_52 + 0.7);108  testFloor(two_52 + 1, two_52 + 0.7);109  testFloor(two_52 - 1, two_52 - 1);110  testFloor(two_52 - 1, two_52 - 1 + 0.1);111  testFloor(two_52 - 1, two_52 - 1 + 0.5);112  testFloor(two_52 - 1, two_52 - 1 + 0.7);113  testFloor(-two_52, -two_52);114  testFloor(-two_52, -two_52 + 0.1);115  testFloor(-two_52, -two_52 + 0.5);116  testFloor(-two_52, -two_52 + 0.7);117  testFloor(-two_52 + 1, -two_52 + 1);118  testFloor(-two_52 + 1, -two_52 + 1 + 0.1);119  testFloor(-two_52 + 1, -two_52 + 1 + 0.5);120  testFloor(-two_52 + 1, -two_52 + 1 + 0.7);121}122// Test in a loop to cover the custom IC and GC-related issues.123for (var i = 0; i < 10; i++) {124  test();125  new Array(i * 10000);126}127// Regression test for a bug where a negative zero coming from Math.floor128// was not properly handled by other operations.129function floorsum(i, n) {130  var ret = Math.floor(n);131  while (--i > 0) {132    ret += Math.floor(n);133  }134  return ret;135}136assertEquals(-0, floorsum(1, -0));137%OptimizeFunctionOnNextCall(floorsum);138// The optimized function will deopt.  Run it with enough iterations to try139// to optimize via OSR (triggering the bug)....math-floor-global.js
Source:math-floor-global.js  
1// Copyright 2012 the V8 project authors. All rights reserved.2// Redistribution and use in source and binary forms, with or without3// modification, are permitted provided that the following conditions are4// met:5//6//     * Redistributions of source code must retain the above copyright7//       notice, this list of conditions and the following disclaimer.8//     * Redistributions in binary form must reproduce the above9//       copyright notice, this list of conditions and the following10//       disclaimer in the documentation and/or other materials provided11//       with the distribution.12//     * Neither the name of Google Inc. nor the names of its13//       contributors may be used to endorse or promote products derived14//       from this software without specific prior written permission.15//16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS17// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT18// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR19// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT20// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,21// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT22// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,23// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY24// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT25// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE26// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.27// Flags: --max-semi-space-size=1 --allow-natives-syntax28// Test inlining of Math.floor when assigned to a global.29var flo = Math.floor;30var test_id = 0;31function testFloor(expect, input) {32  var test = new Function('n',33                          '"' + (test_id++) + '";return flo(n)');34  assertEquals(expect, test(input));35  assertEquals(expect, test(input));36  assertEquals(expect, test(input));37  %OptimizeFunctionOnNextCall(test);38  assertEquals(expect, test(input));39}40function zero() {41  var x = 0.5;42  return (function() { return x - 0.5; })();43}44function test() {45  testFloor(0, 0);46  testFloor(0, zero());47  testFloor(-0, -0);48  testFloor(Infinity, Infinity);49  testFloor(-Infinity, -Infinity);50  testFloor(NaN, NaN);51  // Ensure that a negative zero coming from Math.floor is properly handled52  // by other operations.53  function ifloor(x) {54    return 1 / Math.floor(x);55  }56  assertEquals(-Infinity, ifloor(-0));57  assertEquals(-Infinity, ifloor(-0));58  assertEquals(-Infinity, ifloor(-0));59  %OptimizeFunctionOnNextCall(ifloor);60  assertEquals(-Infinity, ifloor(-0));61  testFloor(0, 0.1);62  testFloor(0, 0.49999999999999994);63  testFloor(0, 0.5);64  testFloor(0, 0.7);65  testFloor(-1, -0.1);66  testFloor(-1, -0.49999999999999994);67  testFloor(-1, -0.5);68  testFloor(-1, -0.7);69  testFloor(1, 1);70  testFloor(1, 1.1);71  testFloor(1, 1.5);72  testFloor(1, 1.7);73  testFloor(-1, -1);74  testFloor(-2, -1.1);75  testFloor(-2, -1.5);76  testFloor(-2, -1.7);77  testFloor(0, Number.MIN_VALUE);78  testFloor(-1, -Number.MIN_VALUE);79  testFloor(Number.MAX_VALUE, Number.MAX_VALUE);80  testFloor(-Number.MAX_VALUE, -Number.MAX_VALUE);81  testFloor(Infinity, Infinity);82  testFloor(-Infinity, -Infinity);83  // 2^30 is a smi boundary.84  var two_30 = 1 << 30;85  testFloor(two_30, two_30);86  testFloor(two_30, two_30 + 0.1);87  testFloor(two_30, two_30 + 0.5);88  testFloor(two_30, two_30 + 0.7);89  testFloor(two_30 - 1, two_30 - 1);90  testFloor(two_30 - 1, two_30 - 1 + 0.1);91  testFloor(two_30 - 1, two_30 - 1 + 0.5);92  testFloor(two_30 - 1, two_30 - 1 + 0.7);93  testFloor(-two_30, -two_30);94  testFloor(-two_30, -two_30 + 0.1);95  testFloor(-two_30, -two_30 + 0.5);96  testFloor(-two_30, -two_30 + 0.7);97  testFloor(-two_30 + 1, -two_30 + 1);98  testFloor(-two_30 + 1, -two_30 + 1 + 0.1);99  testFloor(-two_30 + 1, -two_30 + 1 + 0.5);100  testFloor(-two_30 + 1, -two_30 + 1 + 0.7);101  // 2^52 is a precision boundary.102  var two_52 = (1 << 30) * (1 << 22);103  testFloor(two_52, two_52);104  testFloor(two_52, two_52 + 0.1);105  assertEquals(two_52, two_52 + 0.5);106  testFloor(two_52, two_52 + 0.5);107  assertEquals(two_52 + 1, two_52 + 0.7);108  testFloor(two_52 + 1, two_52 + 0.7);109  testFloor(two_52 - 1, two_52 - 1);110  testFloor(two_52 - 1, two_52 - 1 + 0.1);111  testFloor(two_52 - 1, two_52 - 1 + 0.5);112  testFloor(two_52 - 1, two_52 - 1 + 0.7);113  testFloor(-two_52, -two_52);114  testFloor(-two_52, -two_52 + 0.1);115  testFloor(-two_52, -two_52 + 0.5);116  testFloor(-two_52, -two_52 + 0.7);117  testFloor(-two_52 + 1, -two_52 + 1);118  testFloor(-two_52 + 1, -two_52 + 1 + 0.1);119  testFloor(-two_52 + 1, -two_52 + 1 + 0.5);120  testFloor(-two_52 + 1, -two_52 + 1 + 0.7);121}122// Test in a loop to cover the custom IC and GC-related issues.123for (var i = 0; i < 10; i++) {124  test();125  new Array(i * 10000);126}127// Regression test for a bug where a negative zero coming from Math.floor128// was not properly handled by other operations.129function floorsum(i, n) {130  var ret = Math.floor(n);131  while (--i > 0) {132    ret += Math.floor(n);133  }134  return ret;135}136assertEquals(-0, floorsum(1, -0));137%OptimizeFunctionOnNextCall(floorsum);138// The optimized function will deopt.  Run it with enough iterations to try139// to optimize via OSR (triggering the bug)....pb2server.py
Source:pb2server.py  
...3# See LICENSE for details.4from __future__ import print_function5from twisted.spread import pb6from twisted.internet import reactor7class Two(pb.Referenceable):8    def remote_print(self, arg):9        print("two.print was given", arg)10        11class One(pb.Root):12    def __init__(self, two):13        #pb.Root.__init__(self)   # pb.Root doesn't implement __init__14        self.two = two15    def remote_getTwo(self):16        print("One.getTwo(), returning my two called", self.two)17        return self.two18    def remote_checkTwo(self, newtwo):19        print("One.checkTwo(): comparing my two", self.two)20        print("One.checkTwo(): against your two", newtwo)21        if self.two == newtwo:22            print("One.checkTwo(): our twos are the same")23        24two = Two()25root_obj = One(two)26reactor.listenTCP(8800, pb.PBServerFactory(root_obj))...Using AI Code Generation
1import { Two } from 'storybook-root'2import { Three } from 'storybook-root'3import { Four } from 'storybook-root'4import { Five } from 'storybook-root'5import { Six } from 'storybook-root'6import { Seven } from 'storybook-root'7import { Eight } from 'storybook-root'8import { Nine } from 'storybook-root'9import { Ten } from 'storybook-root'10import { Eleven } from 'storybook-root'11import { Twelve } from 'storybook-root'12import { Thirteen } from 'storybook-root'13import { Fourteen } from 'storybook-root'14import { Fifteen } from 'storybook-root'15import { Sixteen } from 'storybook-root'16import { Seventeen } from 'storybook-root'17import { Eighteen } from 'storybook-root'18import { Nineteen } from 'storybook-root'19import { Twenty } from 'storybook-root'Using AI Code Generation
1import React from 'react';2import { storiesOf } from '@storybook/react';3import { action } from '@storybook/addon-actions';4import Button from './Button';5import Welcome from './Welcome';6import Two from './Two';7storiesOf('Welcome', module).add('to Storybook', () => <Welcome showApp={action('clicked')} />);8storiesOf('Button', module)9  .add('with text', () => <Button onClick={action('clicked')}>Hello Button</Button>)10  .add('with some emoji', () => (11    <Button onClick={action('clicked')}>12  ));13storiesOf('Two', module).add('Two', () => <Two />);14import React from 'react';15import { storiesOf } from '@storybook/react';16import Two from './Two';17storiesOf('Two', module).add('Two', () => <Two />);18import React from 'react';19const Two = () => {20  return <div>Two</div>;21};22export default Two;23Is there any way to import Two.js in test.js and render it in storybook-root ?24import React from 'react';25import { render } from 'react-testing-library';26import { MemoryRouter } from 'react-router-dom';27import App from './App';28test('renders the home page', () => {29  const { getByText } = render(30    <MemoryRouter initialEntries={[ '/' ]}>31  );32  expect(getByText(/Welcome to React/)).toBeInTheDocument();33});34test('renders the about page', () => {35  const { getByText } = render(36    <MemoryRouter initialEntries={[ '/about' ]}>37  );38  expect(getByText(/About/)).toBeInTheDocument();39});Using AI Code Generation
1import { Two } from 'storybook-root'2import { Two } from 'storybook-root'3import { Two } from 'storybook-root'4import { Two } from 'storybook-root'5import { Two } from 'storybook-root'6import { Two } from 'storybook-root'7import { Two } from 'storybook-root'8import { Two } from 'storybook-root'9import { Two } from 'storybook-root'10import { Two } from 'storybook-root'11import { Two } from 'storybook-root'12import { Two } from 'storybook-root'13import { Two } from 'storybook-root'14import { Two } from 'storybook-root'15import { Two } from 'storybook-root'16import { Two } from 'storybook-root'17import { Two } from 'storybook-root'18import { Two } from 'storybook-root'19import { Two } from 'storybook-root'20import { Two } from 'storybook-root'21import { Two } from 'storybook-root'22import { Two } from 'storybook-root'Using AI Code Generation
1import { Two } from 'storybook-root';2console.log(Two);3import { Two } from 'storybook-root';4console.log(Two);5import { Two } from 'storybook-root';6console.log(Two);7import { Two } from 'storybook-root';8console.log(Two);9import { Two } from 'storybook-root';10console.log(Two);11import { Two } from 'storybook-root';12console.log(Two);13import { Two } from 'storybook-root';14console.log(Two);15import { Two } from 'storybook-root';16console.log(Two);17import { Two } from 'storybook-root';18console.log(Two);19import { Two } from 'storybook-root';20console.log(Two);21import { Two } from 'storybook-root';22console.log(Two);23import { Two } from 'storybook-root';24console.log(Two);25import { Two } from 'storybook-root';26console.log(Two);27import { Two } from 'storybook-root';28console.log(Two);Using AI Code Generation
1import React from 'react';2import { Two } from 'storybook-root';3import { One } from 'storybook-root';4export default () => (5);6The above code will work fine, but if you try to import a component from a package that is not in the root of the package, you will get an error. The error message will look something like this:7resolve: {8}9If you want to import a component from a package that is not in the root of the package, you need to add the following to your webpack config:10resolve: {11}12If you want to import a component from a package that is not in the root of the package, you need to add the following to your webpack config:13resolve: {14}15If you want to import a component from a package that is not in the root of the package, you need to add the following to your webpack config:16resolve: {17}18If you want to import a component from a package that is not in the root of the package, you need to add the following to your webpack config:19resolve: {20}21If you want to import a component from a package that is not in the root of the package, you need to add the following to your webpack config:22resolve: {23}24If you want to import a component from a package that is not in the root ofUsing AI Code Generation
1import { Two } from "storybook-root";2const Test = () => {3  return <Two />;4};5export default Test;6module.exports = {7  stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],8  webpackFinal: async (config, { configType }) => {9    config.module.rules.push({10      include: path.resolve(__dirname, "../"),11    });12    return config;13  },14};15import { addDecorator } from "@storybook/react";16import { withTests } from "@storybook/addon-jest";17import results from "../.jest-test-results.json";18addDecorator(19  withTests({20    filesExt: "(\\.spec|\\.test)?(\\.tsx|\\.ts|\\.jsx|\\.js)$",21  })22);23module.exports = async ({ config, mode }) => {24  config.module.rules.push({25    include: path.resolve(__dirname, "../"),26  });27  return config;28};29{30  "compilerOptions": {31  }32}33const path = require("path");34module.exports = async ({ config, mode }) => {35  config.module.rules.push({36    include: path.resolve(__dirname, "../"),37  });38  return config;39};40{41  "compilerOptions": {42  }Using AI Code Generation
1import { Two } from 'storybook-root';2const test = () => {3    const two = new Two();4    two.test();5    return <div>Test</div>;6};7export default test;8import React from 'react';9import Test from '../test';10export default {11};12export const test = () => <Test />;13import One from './one';14import Two from './two';15export { One, Two };16export default class One {17    test() {18        console.log('Test One');19    }20}21export default class Two {22    test() {23        console.log('Test Two');24    }25}26resolve: {27    alias: {28        'storybook-root': path.resolve(__dirname, '../storybook-root'),29    },30},31resolve: {32    alias: {33        'storybook-root': path.resolve(__dirname, '../storybook-root/index.js'),34    },35},36resolve: {37    alias: {38        'storybook-root': path.resolve(__dirname, '../storybook-root'),39    },40},41resolve: {42    alias: {43        'storybook-root': path.resolve(__dirname, '../storybook-root/index.js'),44    },45},46resolve: {47    alias: {48        'storybook-root': path.resolve(__dirname, '../storybook-root'),49    },50},Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
