mdarray-sol 0.1.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +35 -0
- data/LICENSE.txt~ +73 -0
- data/README.md +140 -0
- data/README.md~ +290 -0
- data/Rakefile +80 -0
- data/config.rb +223 -0
- data/doc/Nashorn.html +1406 -0
- data/doc/Sol.html +692 -0
- data/doc/Sol/BarChart.html +181 -0
- data/doc/Sol/BaseChart.html +799 -0
- data/doc/Sol/Bootstrap.html +1134 -0
- data/doc/Sol/Bridge.html +448 -0
- data/doc/Sol/Chart.html +1162 -0
- data/doc/Sol/CoordinateChart.html +673 -0
- data/doc/Sol/DCFX.html +807 -0
- data/doc/Sol/Dashboard.html +1967 -0
- data/doc/Sol/ExecMessages.html +332 -0
- data/doc/Sol/GuiCommunication.html +230 -0
- data/doc/Sol/Interval.html +1213 -0
- data/doc/Sol/JS.html +448 -0
- data/doc/Sol/LineChart.html +344 -0
- data/doc/Sol/LinearScale.html +334 -0
- data/doc/Sol/Margins.html +219 -0
- data/doc/Sol/OrdinalScale.html +263 -0
- data/doc/Sol/ReadBuffer.html +302 -0
- data/doc/Sol/Scale.html +462 -0
- data/doc/Sol/Stack.html +199 -0
- data/doc/Sol/TimeScale.html +396 -0
- data/doc/_index.html +362 -0
- data/doc/class_list.html +58 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +339 -0
- data/doc/file.README.html +95 -0
- data/doc/file_list.html +60 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +95 -0
- data/doc/js/app.js +219 -0
- data/doc/js/full_list.js +181 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +849 -0
- data/doc/top-level-namespace.html +135 -0
- data/examples/bar_chart/bar_chart.rb +268 -0
- data/examples/bar_plot.rb +96 -0
- data/examples/charts/area.rb +25 -0
- data/examples/charts/area_script.rb +69 -0
- data/examples/charts/env.rb +8 -0
- data/examples/charts/monthly-move.csv +6725 -0
- data/examples/charts/morley.csv +101 -0
- data/examples/charts/morley2.csv +81 -0
- data/examples/charts/morley3.csv +121 -0
- data/examples/d3_tutorial.rb +98 -0
- data/examples/sc_plot.rb +57 -0
- data/examples/scatterplot/axes.rb +111 -0
- data/examples/scatterplot/scatterplot.rb +221 -0
- data/examples/us_states/map.rb +90 -0
- data/examples/us_states/us-ag-productivity2004.csv +49 -0
- data/examples/us_states/us-cities.csv +51 -0
- data/examples/util/linear_scale.rb +83 -0
- data/examples/util/ordinal_scale.rb +72 -0
- data/init.rb +39 -0
- data/lib/jx/array_handler.js +70 -0
- data/lib/jx/callback.rb +255 -0
- data/lib/jx/hash_handler.js +87 -0
- data/lib/jx/irbobject.rb +121 -0
- data/lib/jx/js.rb +442 -0
- data/lib/jx/js_array.rb +31 -0
- data/lib/jx/js_hash.rb +76 -0
- data/lib/jx/js_init.rb +62 -0
- data/lib/jx/jsarray.rb +66 -0
- data/lib/jx/jsfunction.rb +73 -0
- data/lib/jx/jsobject.rb +188 -0
- data/lib/jx/jsstyle_sheet.rb +231 -0
- data/lib/jx/jsundefined.rb +46 -0
- data/lib/jx/proxy_array.rb +62 -0
- data/lib/jx/rbobject.rb +80 -0
- data/lib/jx/ruby_proxy.js +176 -0
- data/lib/jx/ruby_rich.js +70 -0
- data/lib/jx/sol.rb +109 -0
- data/lib/mdarray-sol.rb +34 -0
- data/lib/mdarray/jsmdarray.rb +39 -0
- data/lib/ruby_rich/bootstrap.rb +230 -0
- data/lib/ruby_rich/config.html +22 -0
- data/lib/ruby_rich/dashboard.rb +299 -0
- data/lib/ruby_rich/ruby_rich.rb +120 -0
- data/lib/sol/bar_chart.rb +35 -0
- data/lib/sol/base_chart.rb +148 -0
- data/lib/sol/chart.rb +138 -0
- data/lib/sol/coordinate_chart.rb +128 -0
- data/lib/sol/interval.rb +156 -0
- data/lib/sol/line_chart.rb +58 -0
- data/lib/sol/margins.rb +52 -0
- data/lib/sol/scale.rb +212 -0
- data/lib/sol/stack.rb +44 -0
- data/node_modules/bootstrap/Gruntfile.js +533 -0
- data/node_modules/bootstrap/dist/js/bootstrap.js +2363 -0
- data/node_modules/bootstrap/dist/js/bootstrap.min.js +7 -0
- data/node_modules/bootstrap/dist/js/npm.js +13 -0
- data/node_modules/bootstrap/grunt/bs-commonjs-generator.js +30 -0
- data/node_modules/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
- data/node_modules/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
- data/node_modules/bootstrap/grunt/bs-raw-files-generator.js +44 -0
- data/node_modules/bootstrap/js/affix.js +162 -0
- data/node_modules/bootstrap/js/alert.js +94 -0
- data/node_modules/bootstrap/js/button.js +120 -0
- data/node_modules/bootstrap/js/carousel.js +237 -0
- data/node_modules/bootstrap/js/collapse.js +211 -0
- data/node_modules/bootstrap/js/dropdown.js +165 -0
- data/node_modules/bootstrap/js/modal.js +337 -0
- data/node_modules/bootstrap/js/popover.js +108 -0
- data/node_modules/bootstrap/js/scrollspy.js +172 -0
- data/node_modules/bootstrap/js/tab.js +155 -0
- data/node_modules/bootstrap/js/tooltip.js +514 -0
- data/node_modules/bootstrap/js/transition.js +59 -0
- data/node_modules/chai/chai.js +6142 -0
- data/node_modules/chai/index.js +1 -0
- data/node_modules/chai/karma.conf.js +28 -0
- data/node_modules/chai/karma.sauce.js +41 -0
- data/node_modules/chai/lib/chai.js +93 -0
- data/node_modules/chai/lib/chai/assertion.js +131 -0
- data/node_modules/chai/lib/chai/config.js +55 -0
- data/node_modules/chai/lib/chai/core/assertions.js +1860 -0
- data/node_modules/chai/lib/chai/interface/assert.js +1645 -0
- data/node_modules/chai/lib/chai/interface/expect.js +34 -0
- data/node_modules/chai/lib/chai/interface/should.js +201 -0
- data/node_modules/chai/lib/chai/utils/addChainableMethod.js +112 -0
- data/node_modules/chai/lib/chai/utils/addMethod.js +44 -0
- data/node_modules/chai/lib/chai/utils/addProperty.js +48 -0
- data/node_modules/chai/lib/chai/utils/expectTypes.js +42 -0
- data/node_modules/chai/lib/chai/utils/flag.js +33 -0
- data/node_modules/chai/lib/chai/utils/getActual.js +20 -0
- data/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +26 -0
- data/node_modules/chai/lib/chai/utils/getMessage.js +51 -0
- data/node_modules/chai/lib/chai/utils/getName.js +22 -0
- data/node_modules/chai/lib/chai/utils/getPathInfo.js +111 -0
- data/node_modules/chai/lib/chai/utils/getPathValue.js +43 -0
- data/node_modules/chai/lib/chai/utils/getProperties.js +36 -0
- data/node_modules/chai/lib/chai/utils/hasProperty.js +64 -0
- data/node_modules/chai/lib/chai/utils/index.js +130 -0
- data/node_modules/chai/lib/chai/utils/inspect.js +335 -0
- data/node_modules/chai/lib/chai/utils/objDisplay.js +50 -0
- data/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +54 -0
- data/node_modules/chai/lib/chai/utils/overwriteMethod.js +52 -0
- data/node_modules/chai/lib/chai/utils/overwriteProperty.js +55 -0
- data/node_modules/chai/lib/chai/utils/test.js +28 -0
- data/node_modules/chai/lib/chai/utils/transferFlags.js +45 -0
- data/node_modules/chai/node_modules/assertion-error/index.js +116 -0
- data/node_modules/chai/node_modules/deep-eql/index.js +1 -0
- data/node_modules/chai/node_modules/deep-eql/karma.conf.js +20 -0
- data/node_modules/chai/node_modules/deep-eql/lib/eql.js +257 -0
- data/node_modules/chai/node_modules/deep-eql/node_modules/type-detect/index.js +1 -0
- data/node_modules/chai/node_modules/deep-eql/node_modules/type-detect/lib/type.js +142 -0
- data/node_modules/chai/node_modules/type-detect/index.js +1 -0
- data/node_modules/chai/node_modules/type-detect/lib/type.js +134 -0
- data/node_modules/chai/sauce.browsers.js +128 -0
- data/node_modules/dc/Gruntfile.js +437 -0
- data/node_modules/dc/dc.js +10477 -0
- data/node_modules/dc/dc.min.js +23 -0
- data/node_modules/dc/docs/coverage.js +203 -0
- data/node_modules/dc/grunt/format-file-list.js +33 -0
- data/node_modules/dc/index.js +5 -0
- data/node_modules/dc/node_modules/crossfilter2/crossfilter.js +1401 -0
- data/node_modules/dc/node_modules/crossfilter2/crossfilter.min.js +1 -0
- data/node_modules/dc/node_modules/crossfilter2/index.js +1 -0
- data/node_modules/dc/node_modules/crossfilter2/src/array.js +46 -0
- data/node_modules/dc/node_modules/crossfilter2/src/bisect.js +44 -0
- data/node_modules/dc/node_modules/crossfilter2/src/crossfilter.js +872 -0
- data/node_modules/dc/node_modules/crossfilter2/src/filter.js +19 -0
- data/node_modules/dc/node_modules/crossfilter2/src/heap.js +44 -0
- data/node_modules/dc/node_modules/crossfilter2/src/heapselect.js +36 -0
- data/node_modules/dc/node_modules/crossfilter2/src/identity.js +3 -0
- data/node_modules/dc/node_modules/crossfilter2/src/insertionsort.js +18 -0
- data/node_modules/dc/node_modules/crossfilter2/src/null.js +3 -0
- data/node_modules/dc/node_modules/crossfilter2/src/permute.js +8 -0
- data/node_modules/dc/node_modules/crossfilter2/src/quicksort.js +283 -0
- data/node_modules/dc/node_modules/crossfilter2/src/reduce.js +19 -0
- data/node_modules/dc/node_modules/crossfilter2/src/zero.js +3 -0
- data/node_modules/dc/node_modules/d3/d3.js +9554 -0
- data/node_modules/dc/node_modules/d3/d3.min.js +5 -0
- data/node_modules/dc/node_modules/d3/package.js +13 -0
- data/node_modules/dc/node_modules/d3/src/arrays/ascending.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/bisect.js +36 -0
- data/node_modules/dc/node_modules/d3/src/arrays/descending.js +3 -0
- data/node_modules/dc/node_modules/d3/src/arrays/deviation.js +6 -0
- data/node_modules/dc/node_modules/d3/src/arrays/entries.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/extent.js +21 -0
- data/node_modules/dc/node_modules/d3/src/arrays/index.js +25 -0
- data/node_modules/dc/node_modules/d3/src/arrays/keys.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/map.js +84 -0
- data/node_modules/dc/node_modules/d3/src/arrays/max.js +14 -0
- data/node_modules/dc/node_modules/d3/src/arrays/mean.js +15 -0
- data/node_modules/dc/node_modules/d3/src/arrays/median.js +16 -0
- data/node_modules/dc/node_modules/d3/src/arrays/merge.js +21 -0
- data/node_modules/dc/node_modules/d3/src/arrays/min.js +14 -0
- data/node_modules/dc/node_modules/d3/src/arrays/nest.js +97 -0
- data/node_modules/dc/node_modules/d3/src/arrays/pairs.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/permute.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/quantile.js +8 -0
- data/node_modules/dc/node_modules/d3/src/arrays/range.js +26 -0
- data/node_modules/dc/node_modules/d3/src/arrays/set.js +27 -0
- data/node_modules/dc/node_modules/d3/src/arrays/shuffle.js +9 -0
- data/node_modules/dc/node_modules/d3/src/arrays/sum.js +14 -0
- data/node_modules/dc/node_modules/d3/src/arrays/transpose.js +15 -0
- data/node_modules/dc/node_modules/d3/src/arrays/values.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/variance.js +29 -0
- data/node_modules/dc/node_modules/d3/src/arrays/zip.js +5 -0
- data/node_modules/dc/node_modules/d3/src/behavior/behavior.js +1 -0
- data/node_modules/dc/node_modules/d3/src/behavior/drag.js +88 -0
- data/node_modules/dc/node_modules/d3/src/behavior/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/behavior/zoom.js +348 -0
- data/node_modules/dc/node_modules/d3/src/color/color.js +7 -0
- data/node_modules/dc/node_modules/d3/src/color/hcl.js +34 -0
- data/node_modules/dc/node_modules/d3/src/color/hsl.js +56 -0
- data/node_modules/dc/node_modules/d3/src/color/index.js +6 -0
- data/node_modules/dc/node_modules/d3/src/color/lab.js +60 -0
- data/node_modules/dc/node_modules/d3/src/color/rgb.js +301 -0
- data/node_modules/dc/node_modules/d3/src/color/xyz.js +7 -0
- data/node_modules/dc/node_modules/d3/src/compat/array.js +15 -0
- data/node_modules/dc/node_modules/d3/src/compat/date.js +3 -0
- data/node_modules/dc/node_modules/d3/src/compat/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/compat/style.js +23 -0
- data/node_modules/dc/node_modules/d3/src/core/array.js +2 -0
- data/node_modules/dc/node_modules/d3/src/core/class.js +8 -0
- data/node_modules/dc/node_modules/d3/src/core/document.js +15 -0
- data/node_modules/dc/node_modules/d3/src/core/functor.js +5 -0
- data/node_modules/dc/node_modules/d3/src/core/identity.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/noop.js +1 -0
- data/node_modules/dc/node_modules/d3/src/core/ns.js +18 -0
- data/node_modules/dc/node_modules/d3/src/core/rebind.js +16 -0
- data/node_modules/dc/node_modules/d3/src/core/source.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/subclass.js +11 -0
- data/node_modules/dc/node_modules/d3/src/core/target.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/true.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/vendor.js +10 -0
- data/node_modules/dc/node_modules/d3/src/core/zero.js +3 -0
- data/node_modules/dc/node_modules/d3/src/d3.js +23 -0
- data/node_modules/dc/node_modules/d3/src/dsv/csv.js +3 -0
- data/node_modules/dc/node_modules/d3/src/dsv/dsv.js +136 -0
- data/node_modules/dc/node_modules/d3/src/dsv/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/dsv/tsv.js +3 -0
- data/node_modules/dc/node_modules/d3/src/end.js +4 -0
- data/node_modules/dc/node_modules/d3/src/event/dispatch.js +69 -0
- data/node_modules/dc/node_modules/d3/src/event/drag.js +36 -0
- data/node_modules/dc/node_modules/d3/src/event/event.js +50 -0
- data/node_modules/dc/node_modules/d3/src/event/index.js +6 -0
- data/node_modules/dc/node_modules/d3/src/event/mouse.js +39 -0
- data/node_modules/dc/node_modules/d3/src/event/timer.js +82 -0
- data/node_modules/dc/node_modules/d3/src/event/touch.js +11 -0
- data/node_modules/dc/node_modules/d3/src/event/touches.js +12 -0
- data/node_modules/dc/node_modules/d3/src/format/collapse.js +3 -0
- data/node_modules/dc/node_modules/d3/src/format/format.js +3 -0
- data/node_modules/dc/node_modules/d3/src/format/formatPrefix.js +24 -0
- data/node_modules/dc/node_modules/d3/src/format/index.js +4 -0
- data/node_modules/dc/node_modules/d3/src/format/precision.js +3 -0
- data/node_modules/dc/node_modules/d3/src/format/requote.js +5 -0
- data/node_modules/dc/node_modules/d3/src/format/round.js +5 -0
- data/node_modules/dc/node_modules/d3/src/geo/albers-usa.js +129 -0
- data/node_modules/dc/node_modules/d3/src/geo/albers.js +11 -0
- data/node_modules/dc/node_modules/d3/src/geo/area.js +69 -0
- data/node_modules/dc/node_modules/d3/src/geo/azimuthal-equal-area.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/azimuthal-equidistant.js +13 -0
- data/node_modules/dc/node_modules/d3/src/geo/azimuthal.js +25 -0
- data/node_modules/dc/node_modules/d3/src/geo/bounds.js +168 -0
- data/node_modules/dc/node_modules/d3/src/geo/cartesian.js +47 -0
- data/node_modules/dc/node_modules/d3/src/geo/centroid.js +149 -0
- data/node_modules/dc/node_modules/d3/src/geo/circle.js +81 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-antimeridian.js +95 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-circle.js +178 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-extent.js +196 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-polygon.js +104 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip.js +149 -0
- data/node_modules/dc/node_modules/d3/src/geo/compose.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic-conformal.js +39 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic-equal-area.js +33 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic-equidistant.js +36 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic.js +16 -0
- data/node_modules/dc/node_modules/d3/src/geo/distance.js +13 -0
- data/node_modules/dc/node_modules/d3/src/geo/equirectangular.js +10 -0
- data/node_modules/dc/node_modules/d3/src/geo/geo.js +1 -0
- data/node_modules/dc/node_modules/d3/src/geo/gnomonic.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/graticule.js +103 -0
- data/node_modules/dc/node_modules/d3/src/geo/greatArc.js +42 -0
- data/node_modules/dc/node_modules/d3/src/geo/index.js +33 -0
- data/node_modules/dc/node_modules/d3/src/geo/interpolate.js +38 -0
- data/node_modules/dc/node_modules/d3/src/geo/length.js +44 -0
- data/node_modules/dc/node_modules/d3/src/geo/mercator.js +48 -0
- data/node_modules/dc/node_modules/d3/src/geo/orthographic.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-area.js +41 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-bounds.js +21 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-buffer.js +59 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-centroid.js +78 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-context.js +49 -0
- data/node_modules/dc/node_modules/d3/src/geo/path.js +87 -0
- data/node_modules/dc/node_modules/d3/src/geo/point-in-polygon.js +71 -0
- data/node_modules/dc/node_modules/d3/src/geo/projection.js +121 -0
- data/node_modules/dc/node_modules/d3/src/geo/resample.js +109 -0
- data/node_modules/dc/node_modules/d3/src/geo/rotation.js +79 -0
- data/node_modules/dc/node_modules/d3/src/geo/spherical.js +13 -0
- data/node_modules/dc/node_modules/d3/src/geo/stereographic.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/stream.js +71 -0
- data/node_modules/dc/node_modules/d3/src/geo/transform.js +36 -0
- data/node_modules/dc/node_modules/d3/src/geo/transverse-mercator.js +31 -0
- data/node_modules/dc/node_modules/d3/src/geom/clip-line.js +66 -0
- data/node_modules/dc/node_modules/d3/src/geom/delaunay.js +6 -0
- data/node_modules/dc/node_modules/d3/src/geom/geom.js +1 -0
- data/node_modules/dc/node_modules/d3/src/geom/hull.js +91 -0
- data/node_modules/dc/node_modules/d3/src/geom/index.js +6 -0
- data/node_modules/dc/node_modules/d3/src/geom/point.js +7 -0
- data/node_modules/dc/node_modules/d3/src/geom/polygon.js +105 -0
- data/node_modules/dc/node_modules/d3/src/geom/quadtree.js +243 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi.js +110 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/beach.js +186 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/cell.js +64 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/circle.js +73 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/clip.js +80 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/edge.js +50 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/index.js +59 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/red-black.js +235 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/array.js +19 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/ease.js +111 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/hcl.js +20 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/hsl.js +20 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/index.js +14 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/interpolate.js +26 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/lab.js +17 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/number.js +6 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/object.js +25 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/rgb.js +20 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/round.js +6 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/string.js +54 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/transform.js +59 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/uninterpolate.js +9 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/zoom.js +53 -0
- data/node_modules/dc/node_modules/d3/src/layout/bundle.js +59 -0
- data/node_modules/dc/node_modules/d3/src/layout/chord.js +157 -0
- data/node_modules/dc/node_modules/d3/src/layout/cluster.js +92 -0
- data/node_modules/dc/node_modules/d3/src/layout/force.js +372 -0
- data/node_modules/dc/node_modules/d3/src/layout/hierarchy.js +136 -0
- data/node_modules/dc/node_modules/d3/src/layout/histogram.js +110 -0
- data/node_modules/dc/node_modules/d3/src/layout/index.js +13 -0
- data/node_modules/dc/node_modules/d3/src/layout/layout.js +1 -0
- data/node_modules/dc/node_modules/d3/src/layout/pack.js +211 -0
- data/node_modules/dc/node_modules/d3/src/layout/partition.js +51 -0
- data/node_modules/dc/node_modules/d3/src/layout/pie.js +78 -0
- data/node_modules/dc/node_modules/d3/src/layout/stack.js +247 -0
- data/node_modules/dc/node_modules/d3/src/layout/tree.js +240 -0
- data/node_modules/dc/node_modules/d3/src/layout/treemap.js +229 -0
- data/node_modules/dc/node_modules/d3/src/locale/ca-ES.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/de-CH.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/de-DE.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/en-CA.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/en-GB.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/en-US.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/es-ES.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/fi-FI.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/fr-CA.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/fr-FR.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/he-IL.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/hu-HU.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/it-IT.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/ja-JP.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/ko-KR.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/locale.js +9 -0
- data/node_modules/dc/node_modules/d3/src/locale/mk-MK.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/nl-NL.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/number-format.js +155 -0
- data/node_modules/dc/node_modules/d3/src/locale/pl-PL.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/pt-BR.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/ru-RU.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/sv-SE.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/time-format.js +370 -0
- data/node_modules/dc/node_modules/d3/src/locale/time-scale.js +0 -0
- data/node_modules/dc/node_modules/d3/src/locale/zh-CN.js +16 -0
- data/node_modules/dc/node_modules/d3/src/math/abs.js +1 -0
- data/node_modules/dc/node_modules/d3/src/math/adder.js +34 -0
- data/node_modules/dc/node_modules/d3/src/math/index.js +2 -0
- data/node_modules/dc/node_modules/d3/src/math/number.js +7 -0
- data/node_modules/dc/node_modules/d3/src/math/random.js +34 -0
- data/node_modules/dc/node_modules/d3/src/math/transform.js +64 -0
- data/node_modules/dc/node_modules/d3/src/math/trigonometry.js +44 -0
- data/node_modules/dc/node_modules/d3/src/scale/bilinear.js +7 -0
- data/node_modules/dc/node_modules/d3/src/scale/category.js +58 -0
- data/node_modules/dc/node_modules/d3/src/scale/identity.js +33 -0
- data/node_modules/dc/node_modules/d3/src/scale/index.js +11 -0
- data/node_modules/dc/node_modules/d3/src/scale/linear.js +160 -0
- data/node_modules/dc/node_modules/d3/src/scale/log.js +92 -0
- data/node_modules/dc/node_modules/d3/src/scale/nice.js +30 -0
- data/node_modules/dc/node_modules/d3/src/scale/ordinal.js +102 -0
- data/node_modules/dc/node_modules/d3/src/scale/polylinear.js +24 -0
- data/node_modules/dc/node_modules/d3/src/scale/pow.js +57 -0
- data/node_modules/dc/node_modules/d3/src/scale/quantile.js +55 -0
- data/node_modules/dc/node_modules/d3/src/scale/quantize.js +44 -0
- data/node_modules/dc/node_modules/d3/src/scale/scale.js +10 -0
- data/node_modules/dc/node_modules/d3/src/scale/sqrt.js +6 -0
- data/node_modules/dc/node_modules/d3/src/scale/threshold.js +36 -0
- data/node_modules/dc/node_modules/d3/src/selection/append.js +28 -0
- data/node_modules/dc/node_modules/d3/src/selection/attr.js +62 -0
- data/node_modules/dc/node_modules/d3/src/selection/call.js +8 -0
- data/node_modules/dc/node_modules/d3/src/selection/classed.js +76 -0
- data/node_modules/dc/node_modules/d3/src/selection/data.js +117 -0
- data/node_modules/dc/node_modules/d3/src/selection/datum.js +7 -0
- data/node_modules/dc/node_modules/d3/src/selection/each.js +16 -0
- data/node_modules/dc/node_modules/d3/src/selection/empty.js +5 -0
- data/node_modules/dc/node_modules/d3/src/selection/enter-insert.js +20 -0
- data/node_modules/dc/node_modules/d3/src/selection/enter-select.js +27 -0
- data/node_modules/dc/node_modules/d3/src/selection/enter.js +21 -0
- data/node_modules/dc/node_modules/d3/src/selection/filter.js +28 -0
- data/node_modules/dc/node_modules/d3/src/selection/html.js +10 -0
- data/node_modules/dc/node_modules/d3/src/selection/index.js +1 -0
- data/node_modules/dc/node_modules/d3/src/selection/insert.js +9 -0
- data/node_modules/dc/node_modules/d3/src/selection/interrupt.js +27 -0
- data/node_modules/dc/node_modules/d3/src/selection/node.js +11 -0
- data/node_modules/dc/node_modules/d3/src/selection/on.js +106 -0
- data/node_modules/dc/node_modules/d3/src/selection/order.js +13 -0
- data/node_modules/dc/node_modules/d3/src/selection/property.js +43 -0
- data/node_modules/dc/node_modules/d3/src/selection/remove.js +13 -0
- data/node_modules/dc/node_modules/d3/src/selection/select.js +32 -0
- data/node_modules/dc/node_modules/d3/src/selection/selectAll.js +27 -0
- data/node_modules/dc/node_modules/d3/src/selection/selection.js +81 -0
- data/node_modules/dc/node_modules/d3/src/selection/size.js +7 -0
- data/node_modules/dc/node_modules/d3/src/selection/sort.js +15 -0
- data/node_modules/dc/node_modules/d3/src/selection/style.js +59 -0
- data/node_modules/dc/node_modules/d3/src/selection/text.js +10 -0
- data/node_modules/dc/node_modules/d3/src/selection/transition.js +21 -0
- data/node_modules/dc/node_modules/d3/src/start.js +2 -0
- data/node_modules/dc/node_modules/d3/src/svg/arc.js +292 -0
- data/node_modules/dc/node_modules/d3/src/svg/area-radial.js +14 -0
- data/node_modules/dc/node_modules/d3/src/svg/area.js +121 -0
- data/node_modules/dc/node_modules/d3/src/svg/axis.js +160 -0
- data/node_modules/dc/node_modules/d3/src/svg/brush.js +429 -0
- data/node_modules/dc/node_modules/d3/src/svg/chord.js +90 -0
- data/node_modules/dc/node_modules/d3/src/svg/diagonal-radial.js +27 -0
- data/node_modules/dc/node_modules/d3/src/svg/diagonal.js +43 -0
- data/node_modules/dc/node_modules/d3/src/svg/index.js +12 -0
- data/node_modules/dc/node_modules/d3/src/svg/line-radial.js +27 -0
- data/node_modules/dc/node_modules/d3/src/svg/line.js +432 -0
- data/node_modules/dc/node_modules/d3/src/svg/svg.js +1 -0
- data/node_modules/dc/node_modules/d3/src/svg/symbol.js +105 -0
- data/node_modules/dc/node_modules/d3/src/time/day.js +21 -0
- data/node_modules/dc/node_modules/d3/src/time/format-iso.js +19 -0
- data/node_modules/dc/node_modules/d3/src/time/format-utc.js +3 -0
- data/node_modules/dc/node_modules/d3/src/time/format.js +4 -0
- data/node_modules/dc/node_modules/d3/src/time/hour.js +14 -0
- data/node_modules/dc/node_modules/d3/src/time/index.js +14 -0
- data/node_modules/dc/node_modules/d3/src/time/interval.js +71 -0
- data/node_modules/dc/node_modules/d3/src/time/minute.js +13 -0
- data/node_modules/dc/node_modules/d3/src/time/month.js +16 -0
- data/node_modules/dc/node_modules/d3/src/time/scale-utc.js +25 -0
- data/node_modules/dc/node_modules/d3/src/time/scale.js +155 -0
- data/node_modules/dc/node_modules/d3/src/time/second.js +13 -0
- data/node_modules/dc/node_modules/d3/src/time/time.js +33 -0
- data/node_modules/dc/node_modules/d3/src/time/week.js +31 -0
- data/node_modules/dc/node_modules/d3/src/time/year.js +16 -0
- data/node_modules/dc/node_modules/d3/src/transition/attr.js +58 -0
- data/node_modules/dc/node_modules/d3/src/transition/delay.js +10 -0
- data/node_modules/dc/node_modules/d3/src/transition/duration.js +10 -0
- data/node_modules/dc/node_modules/d3/src/transition/each.js +26 -0
- data/node_modules/dc/node_modules/d3/src/transition/ease.js +10 -0
- data/node_modules/dc/node_modules/d3/src/transition/filter.js +22 -0
- data/node_modules/dc/node_modules/d3/src/transition/index.js +1 -0
- data/node_modules/dc/node_modules/d3/src/transition/remove.js +9 -0
- data/node_modules/dc/node_modules/d3/src/transition/select.js +28 -0
- data/node_modules/dc/node_modules/d3/src/transition/selectAll.js +31 -0
- data/node_modules/dc/node_modules/d3/src/transition/style.js +53 -0
- data/node_modules/dc/node_modules/d3/src/transition/subtransition.js +25 -0
- data/node_modules/dc/node_modules/d3/src/transition/text.js +11 -0
- data/node_modules/dc/node_modules/d3/src/transition/transition.js +161 -0
- data/node_modules/dc/node_modules/d3/src/transition/tween.js +17 -0
- data/node_modules/dc/node_modules/d3/src/xhr/html.js +12 -0
- data/node_modules/dc/node_modules/d3/src/xhr/index.js +5 -0
- data/node_modules/dc/node_modules/d3/src/xhr/json.js +9 -0
- data/node_modules/dc/node_modules/d3/src/xhr/text.js +5 -0
- data/node_modules/dc/node_modules/d3/src/xhr/xhr.js +126 -0
- data/node_modules/dc/node_modules/d3/src/xhr/xml.js +5 -0
- data/node_modules/dc/regression/inject-serializer.js +6 -0
- data/node_modules/dc/regression/stock-regression-test.js +140 -0
- data/node_modules/dc/spec/bar-chart-spec.js +1230 -0
- data/node_modules/dc/spec/base-mixin-spec.js +611 -0
- data/node_modules/dc/spec/biggish-data-spec.js +136 -0
- data/node_modules/dc/spec/box-plot-spec.js +211 -0
- data/node_modules/dc/spec/bubble-chart-spec.js +450 -0
- data/node_modules/dc/spec/bubble-overlay-spec.js +102 -0
- data/node_modules/dc/spec/color-spec.js +89 -0
- data/node_modules/dc/spec/composite-chart-spec.js +691 -0
- data/node_modules/dc/spec/coordinate-grid-chart-spec.js +962 -0
- data/node_modules/dc/spec/core-spec.js +301 -0
- data/node_modules/dc/spec/data-addition-spec.js +122 -0
- data/node_modules/dc/spec/data-count-spec.js +180 -0
- data/node_modules/dc/spec/data-grid-spec.js +124 -0
- data/node_modules/dc/spec/data-table-spec.js +251 -0
- data/node_modules/dc/spec/event-spec.js +41 -0
- data/node_modules/dc/spec/filter-dates-spec.js +92 -0
- data/node_modules/dc/spec/filters-spec.js +140 -0
- data/node_modules/dc/spec/geo-choropleth-chart-spec.js +225 -0
- data/node_modules/dc/spec/heatmap-spec.js +363 -0
- data/node_modules/dc/spec/helpers/custom_matchers.js +213 -0
- data/node_modules/dc/spec/helpers/fixtures.js +81 -0
- data/node_modules/dc/spec/helpers/geoFixtures.js +113 -0
- data/node_modules/dc/spec/helpers/load-jsreporter.js +37 -0
- data/node_modules/dc/spec/helpers/spec-helper.js +53 -0
- data/node_modules/dc/spec/legend-spec.js +266 -0
- data/node_modules/dc/spec/line-chart-spec.js +709 -0
- data/node_modules/dc/spec/logger-spec.js +80 -0
- data/node_modules/dc/spec/number-display-spec.js +168 -0
- data/node_modules/dc/spec/pie-chart-spec.js +677 -0
- data/node_modules/dc/spec/row-chart-spec.js +362 -0
- data/node_modules/dc/spec/scatter-plot-spec.js +336 -0
- data/node_modules/dc/spec/series-chart-spec.js +133 -0
- data/node_modules/dc/spec/utils-spec.js +110 -0
- data/node_modules/dc/src/banner.js +2 -0
- data/node_modules/dc/src/bar-chart.js +374 -0
- data/node_modules/dc/src/base-mixin.js +1478 -0
- data/node_modules/dc/src/box-plot.js +240 -0
- data/node_modules/dc/src/bubble-chart.js +177 -0
- data/node_modules/dc/src/bubble-mixin.js +244 -0
- data/node_modules/dc/src/bubble-overlay.js +207 -0
- data/node_modules/dc/src/cap-mixin.js +151 -0
- data/node_modules/dc/src/color-mixin.js +172 -0
- data/node_modules/dc/src/composite-chart.js +544 -0
- data/node_modules/dc/src/coordinate-grid-mixin.js +1300 -0
- data/node_modules/dc/src/core.js +425 -0
- data/node_modules/dc/src/d3.box.js +317 -0
- data/node_modules/dc/src/data-count.js +110 -0
- data/node_modules/dc/src/data-grid.js +243 -0
- data/node_modules/dc/src/data-table.js +419 -0
- data/node_modules/dc/src/errors.js +28 -0
- data/node_modules/dc/src/events.js +37 -0
- data/node_modules/dc/src/filters.js +124 -0
- data/node_modules/dc/src/footer.js +35 -0
- data/node_modules/dc/src/geo-choropleth-chart.js +279 -0
- data/node_modules/dc/src/heatmap.js +378 -0
- data/node_modules/dc/src/legend.js +277 -0
- data/node_modules/dc/src/line-chart.js +504 -0
- data/node_modules/dc/src/logger.js +40 -0
- data/node_modules/dc/src/margin-mixin.js +44 -0
- data/node_modules/dc/src/number-display.js +141 -0
- data/node_modules/dc/src/pie-chart.js +571 -0
- data/node_modules/dc/src/row-chart.js +425 -0
- data/node_modules/dc/src/scatter-plot.js +338 -0
- data/node_modules/dc/src/series-chart.js +192 -0
- data/node_modules/dc/src/stack-mixin.js +319 -0
- data/node_modules/dc/src/utils.js +290 -0
- data/node_modules/dc/web/docs/html/scripts/docstrap.lib.js +11 -0
- data/node_modules/dc/web/docs/html/scripts/fulltext-search-ui.js +89 -0
- data/node_modules/dc/web/docs/html/scripts/fulltext-search.js +36 -0
- data/node_modules/dc/web/docs/html/scripts/lunr.min.js +7 -0
- data/node_modules/dc/web/docs/html/scripts/prettify/jquery.min.js +6 -0
- data/node_modules/dc/web/docs/html/scripts/prettify/lang-css.js +21 -0
- data/node_modules/dc/web/docs/html/scripts/prettify/prettify.js +496 -0
- data/node_modules/dc/web/docs/html/scripts/sunlight.js +1157 -0
- data/node_modules/dc/web/docs/html/scripts/toc.js +203 -0
- data/node_modules/dc/web/ep/list.js +106 -0
- data/node_modules/dc/web/examples/lysenko-interval-tree.js +447 -0
- data/node_modules/dc/web/highlighter/shAutoloader.js +17 -0
- data/node_modules/dc/web/highlighter/shBrushJScript.js +52 -0
- data/node_modules/dc/web/highlighter/shBrushXml.js +69 -0
- data/node_modules/dc/web/highlighter/shCore.js +17 -0
- data/node_modules/dc/web/js/colorbrewer.js +1 -0
- data/node_modules/dc/web/js/crossfilter.js +1401 -0
- data/node_modules/dc/web/js/d3.js +9554 -0
- data/node_modules/dc/web/js/dc.js +10477 -0
- data/node_modules/dc/web/js/dc.min.js +23 -0
- data/node_modules/dc/web/js/env-data.js +218 -0
- data/node_modules/dc/web/js/jasmine-jsreporter.js +394 -0
- data/node_modules/dc/web/stock.js +685 -0
- data/node_modules/dc/web/transitions/transition-test.js +45 -0
- data/node_modules/jquery/dist/jquery.js +9814 -0
- data/node_modules/jquery/dist/jquery.min.js +4 -0
- data/node_modules/jquery/external/sizzle/dist/sizzle.js +2143 -0
- data/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
- data/node_modules/jquery/src/ajax.js +845 -0
- data/node_modules/jquery/src/ajax/jsonp.js +100 -0
- data/node_modules/jquery/src/ajax/load.js +83 -0
- data/node_modules/jquery/src/ajax/parseJSON.js +13 -0
- data/node_modules/jquery/src/ajax/parseXML.js +27 -0
- data/node_modules/jquery/src/ajax/script.js +68 -0
- data/node_modules/jquery/src/ajax/var/location.js +3 -0
- data/node_modules/jquery/src/ajax/var/nonce.js +5 -0
- data/node_modules/jquery/src/ajax/var/rquery.js +3 -0
- data/node_modules/jquery/src/ajax/xhr.js +167 -0
- data/node_modules/jquery/src/attributes.js +11 -0
- data/node_modules/jquery/src/attributes/attr.js +142 -0
- data/node_modules/jquery/src/attributes/classes.js +177 -0
- data/node_modules/jquery/src/attributes/prop.js +125 -0
- data/node_modules/jquery/src/attributes/support.js +36 -0
- data/node_modules/jquery/src/attributes/val.js +177 -0
- data/node_modules/jquery/src/callbacks.js +232 -0
- data/node_modules/jquery/src/core.js +494 -0
- data/node_modules/jquery/src/core/access.js +65 -0
- data/node_modules/jquery/src/core/init.js +134 -0
- data/node_modules/jquery/src/core/parseHTML.js +41 -0
- data/node_modules/jquery/src/core/ready.js +103 -0
- data/node_modules/jquery/src/core/var/rsingleTag.js +5 -0
- data/node_modules/jquery/src/css.js +502 -0
- data/node_modules/jquery/src/css/addGetHookIf.js +24 -0
- data/node_modules/jquery/src/css/adjustCSS.js +65 -0
- data/node_modules/jquery/src/css/curCSS.js +60 -0
- data/node_modules/jquery/src/css/defaultDisplay.js +72 -0
- data/node_modules/jquery/src/css/hiddenVisibleSelectors.js +18 -0
- data/node_modules/jquery/src/css/showHide.js +48 -0
- data/node_modules/jquery/src/css/support.js +121 -0
- data/node_modules/jquery/src/css/var/cssExpand.js +3 -0
- data/node_modules/jquery/src/css/var/getStyles.js +15 -0
- data/node_modules/jquery/src/css/var/isHidden.js +16 -0
- data/node_modules/jquery/src/css/var/rmargin.js +3 -0
- data/node_modules/jquery/src/css/var/rnumnonpx.js +5 -0
- data/node_modules/jquery/src/css/var/swap.js +24 -0
- data/node_modules/jquery/src/data.js +187 -0
- data/node_modules/jquery/src/data/Data.js +200 -0
- data/node_modules/jquery/src/data/var/acceptData.js +18 -0
- data/node_modules/jquery/src/data/var/dataPriv.js +5 -0
- data/node_modules/jquery/src/data/var/dataUser.js +5 -0
- data/node_modules/jquery/src/deferred.js +158 -0
- data/node_modules/jquery/src/deprecated.js +32 -0
- data/node_modules/jquery/src/dimensions.js +54 -0
- data/node_modules/jquery/src/effects.js +629 -0
- data/node_modules/jquery/src/effects/Tween.js +121 -0
- data/node_modules/jquery/src/effects/animatedSelector.js +13 -0
- data/node_modules/jquery/src/event.js +711 -0
- data/node_modules/jquery/src/event/ajax.js +20 -0
- data/node_modules/jquery/src/event/alias.js +27 -0
- data/node_modules/jquery/src/event/focusin.js +53 -0
- data/node_modules/jquery/src/event/support.js +9 -0
- data/node_modules/jquery/src/event/trigger.js +183 -0
- data/node_modules/jquery/src/exports/amd.js +24 -0
- data/node_modules/jquery/src/exports/global.js +26 -0
- data/node_modules/jquery/src/intro.js +44 -0
- data/node_modules/jquery/src/jquery.js +37 -0
- data/node_modules/jquery/src/manipulation.js +481 -0
- data/node_modules/jquery/src/manipulation/_evalUrl.js +20 -0
- data/node_modules/jquery/src/manipulation/buildFragment.js +102 -0
- data/node_modules/jquery/src/manipulation/getAll.js +21 -0
- data/node_modules/jquery/src/manipulation/setGlobalEval.js +20 -0
- data/node_modules/jquery/src/manipulation/support.js +33 -0
- data/node_modules/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/node_modules/jquery/src/manipulation/var/rscriptType.js +3 -0
- data/node_modules/jquery/src/manipulation/var/rtagName.js +3 -0
- data/node_modules/jquery/src/manipulation/wrapMap.js +27 -0
- data/node_modules/jquery/src/offset.js +218 -0
- data/node_modules/jquery/src/outro.js +2 -0
- data/node_modules/jquery/src/queue.js +143 -0
- data/node_modules/jquery/src/queue/delay.js +22 -0
- data/node_modules/jquery/src/selector-native.js +211 -0
- data/node_modules/jquery/src/selector-sizzle.js +14 -0
- data/node_modules/jquery/src/selector.js +1 -0
- data/node_modules/jquery/src/serialize.js +125 -0
- data/node_modules/jquery/src/traversing.js +175 -0
- data/node_modules/jquery/src/traversing/findFilter.js +100 -0
- data/node_modules/jquery/src/traversing/var/dir.js +20 -0
- data/node_modules/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/node_modules/jquery/src/traversing/var/siblings.js +15 -0
- data/node_modules/jquery/src/var/arr.js +3 -0
- data/node_modules/jquery/src/var/class2type.js +5 -0
- data/node_modules/jquery/src/var/concat.js +5 -0
- data/node_modules/jquery/src/var/document.js +3 -0
- data/node_modules/jquery/src/var/documentElement.js +5 -0
- data/node_modules/jquery/src/var/hasOwn.js +5 -0
- data/node_modules/jquery/src/var/indexOf.js +5 -0
- data/node_modules/jquery/src/var/pnum.js +3 -0
- data/node_modules/jquery/src/var/push.js +5 -0
- data/node_modules/jquery/src/var/rcssNum.js +7 -0
- data/node_modules/jquery/src/var/rnotwhite.js +3 -0
- data/node_modules/jquery/src/var/slice.js +5 -0
- data/node_modules/jquery/src/var/support.js +5 -0
- data/node_modules/jquery/src/var/toString.js +5 -0
- data/node_modules/jquery/src/wrap.js +79 -0
- data/target/mdarray_sol.jar +0 -0
- data/test/jx/test_complete.rb +35 -0
- data/test/jx/test_js.rb +543 -0
- data/test/jx/test_proxy_array.rb +239 -0
- data/test/jx/test_proxy_hash.rb +160 -0
- data/test/jx/test_proxy_lambda.rb +80 -0
- data/test/jx/test_rb_js_compat.rb +135 -0
- data/test/jx/test_style_sheets.rb +90 -0
- data/test/mdarray/test_mdarray.rb +75 -0
- data/util/cacert.pem +4095 -0
- data/util/download.rb +256 -0
- data/vendor/jxbrowser-6.8.jar +0 -0
- data/vendor/licence.jar +0 -0
- data/version.rb +2 -0
- metadata +817 -0
|
@@ -0,0 +1,1645 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* chai
|
|
3
|
+
* Copyright(c) 2011-2014 Jake Luer <jake@alogicalparadox.com>
|
|
4
|
+
* MIT Licensed
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
module.exports = function (chai, util) {
|
|
9
|
+
|
|
10
|
+
/*!
|
|
11
|
+
* Chai dependencies.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
var Assertion = chai.Assertion
|
|
15
|
+
, flag = util.flag;
|
|
16
|
+
|
|
17
|
+
/*!
|
|
18
|
+
* Module export.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* ### assert(expression, message)
|
|
23
|
+
*
|
|
24
|
+
* Write your own test expressions.
|
|
25
|
+
*
|
|
26
|
+
* assert('foo' !== 'bar', 'foo is not bar');
|
|
27
|
+
* assert(Array.isArray([]), 'empty arrays are arrays');
|
|
28
|
+
*
|
|
29
|
+
* @param {Mixed} expression to test for truthiness
|
|
30
|
+
* @param {String} message to display on error
|
|
31
|
+
* @name assert
|
|
32
|
+
* @namespace Assert
|
|
33
|
+
* @api public
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
var assert = chai.assert = function (express, errmsg) {
|
|
37
|
+
var test = new Assertion(null, null, chai.assert);
|
|
38
|
+
test.assert(
|
|
39
|
+
express
|
|
40
|
+
, errmsg
|
|
41
|
+
, '[ negation message unavailable ]'
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* ### .fail(actual, expected, [message], [operator])
|
|
47
|
+
*
|
|
48
|
+
* Throw a failure. Node.js `assert` module-compatible.
|
|
49
|
+
*
|
|
50
|
+
* @name fail
|
|
51
|
+
* @param {Mixed} actual
|
|
52
|
+
* @param {Mixed} expected
|
|
53
|
+
* @param {String} message
|
|
54
|
+
* @param {String} operator
|
|
55
|
+
* @namespace Assert
|
|
56
|
+
* @api public
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
assert.fail = function (actual, expected, message, operator) {
|
|
60
|
+
message = message || 'assert.fail()';
|
|
61
|
+
throw new chai.AssertionError(message, {
|
|
62
|
+
actual: actual
|
|
63
|
+
, expected: expected
|
|
64
|
+
, operator: operator
|
|
65
|
+
}, assert.fail);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* ### .isOk(object, [message])
|
|
70
|
+
*
|
|
71
|
+
* Asserts that `object` is truthy.
|
|
72
|
+
*
|
|
73
|
+
* assert.isOk('everything', 'everything is ok');
|
|
74
|
+
* assert.isOk(false, 'this will fail');
|
|
75
|
+
*
|
|
76
|
+
* @name isOk
|
|
77
|
+
* @alias ok
|
|
78
|
+
* @param {Mixed} object to test
|
|
79
|
+
* @param {String} message
|
|
80
|
+
* @namespace Assert
|
|
81
|
+
* @api public
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
assert.isOk = function (val, msg) {
|
|
85
|
+
new Assertion(val, msg).is.ok;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* ### .isNotOk(object, [message])
|
|
90
|
+
*
|
|
91
|
+
* Asserts that `object` is falsy.
|
|
92
|
+
*
|
|
93
|
+
* assert.isNotOk('everything', 'this will fail');
|
|
94
|
+
* assert.isNotOk(false, 'this will pass');
|
|
95
|
+
*
|
|
96
|
+
* @name isNotOk
|
|
97
|
+
* @alias notOk
|
|
98
|
+
* @param {Mixed} object to test
|
|
99
|
+
* @param {String} message
|
|
100
|
+
* @namespace Assert
|
|
101
|
+
* @api public
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
assert.isNotOk = function (val, msg) {
|
|
105
|
+
new Assertion(val, msg).is.not.ok;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* ### .equal(actual, expected, [message])
|
|
110
|
+
*
|
|
111
|
+
* Asserts non-strict equality (`==`) of `actual` and `expected`.
|
|
112
|
+
*
|
|
113
|
+
* assert.equal(3, '3', '== coerces values to strings');
|
|
114
|
+
*
|
|
115
|
+
* @name equal
|
|
116
|
+
* @param {Mixed} actual
|
|
117
|
+
* @param {Mixed} expected
|
|
118
|
+
* @param {String} message
|
|
119
|
+
* @namespace Assert
|
|
120
|
+
* @api public
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
assert.equal = function (act, exp, msg) {
|
|
124
|
+
var test = new Assertion(act, msg, assert.equal);
|
|
125
|
+
|
|
126
|
+
test.assert(
|
|
127
|
+
exp == flag(test, 'object')
|
|
128
|
+
, 'expected #{this} to equal #{exp}'
|
|
129
|
+
, 'expected #{this} to not equal #{act}'
|
|
130
|
+
, exp
|
|
131
|
+
, act
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* ### .notEqual(actual, expected, [message])
|
|
137
|
+
*
|
|
138
|
+
* Asserts non-strict inequality (`!=`) of `actual` and `expected`.
|
|
139
|
+
*
|
|
140
|
+
* assert.notEqual(3, 4, 'these numbers are not equal');
|
|
141
|
+
*
|
|
142
|
+
* @name notEqual
|
|
143
|
+
* @param {Mixed} actual
|
|
144
|
+
* @param {Mixed} expected
|
|
145
|
+
* @param {String} message
|
|
146
|
+
* @namespace Assert
|
|
147
|
+
* @api public
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
assert.notEqual = function (act, exp, msg) {
|
|
151
|
+
var test = new Assertion(act, msg, assert.notEqual);
|
|
152
|
+
|
|
153
|
+
test.assert(
|
|
154
|
+
exp != flag(test, 'object')
|
|
155
|
+
, 'expected #{this} to not equal #{exp}'
|
|
156
|
+
, 'expected #{this} to equal #{act}'
|
|
157
|
+
, exp
|
|
158
|
+
, act
|
|
159
|
+
);
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* ### .strictEqual(actual, expected, [message])
|
|
164
|
+
*
|
|
165
|
+
* Asserts strict equality (`===`) of `actual` and `expected`.
|
|
166
|
+
*
|
|
167
|
+
* assert.strictEqual(true, true, 'these booleans are strictly equal');
|
|
168
|
+
*
|
|
169
|
+
* @name strictEqual
|
|
170
|
+
* @param {Mixed} actual
|
|
171
|
+
* @param {Mixed} expected
|
|
172
|
+
* @param {String} message
|
|
173
|
+
* @namespace Assert
|
|
174
|
+
* @api public
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
assert.strictEqual = function (act, exp, msg) {
|
|
178
|
+
new Assertion(act, msg).to.equal(exp);
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* ### .notStrictEqual(actual, expected, [message])
|
|
183
|
+
*
|
|
184
|
+
* Asserts strict inequality (`!==`) of `actual` and `expected`.
|
|
185
|
+
*
|
|
186
|
+
* assert.notStrictEqual(3, '3', 'no coercion for strict equality');
|
|
187
|
+
*
|
|
188
|
+
* @name notStrictEqual
|
|
189
|
+
* @param {Mixed} actual
|
|
190
|
+
* @param {Mixed} expected
|
|
191
|
+
* @param {String} message
|
|
192
|
+
* @namespace Assert
|
|
193
|
+
* @api public
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
assert.notStrictEqual = function (act, exp, msg) {
|
|
197
|
+
new Assertion(act, msg).to.not.equal(exp);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* ### .deepEqual(actual, expected, [message])
|
|
202
|
+
*
|
|
203
|
+
* Asserts that `actual` is deeply equal to `expected`.
|
|
204
|
+
*
|
|
205
|
+
* assert.deepEqual({ tea: 'green' }, { tea: 'green' });
|
|
206
|
+
*
|
|
207
|
+
* @name deepEqual
|
|
208
|
+
* @param {Mixed} actual
|
|
209
|
+
* @param {Mixed} expected
|
|
210
|
+
* @param {String} message
|
|
211
|
+
* @namespace Assert
|
|
212
|
+
* @api public
|
|
213
|
+
*/
|
|
214
|
+
|
|
215
|
+
assert.deepEqual = function (act, exp, msg) {
|
|
216
|
+
new Assertion(act, msg).to.eql(exp);
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* ### .notDeepEqual(actual, expected, [message])
|
|
221
|
+
*
|
|
222
|
+
* Assert that `actual` is not deeply equal to `expected`.
|
|
223
|
+
*
|
|
224
|
+
* assert.notDeepEqual({ tea: 'green' }, { tea: 'jasmine' });
|
|
225
|
+
*
|
|
226
|
+
* @name notDeepEqual
|
|
227
|
+
* @param {Mixed} actual
|
|
228
|
+
* @param {Mixed} expected
|
|
229
|
+
* @param {String} message
|
|
230
|
+
* @namespace Assert
|
|
231
|
+
* @api public
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
assert.notDeepEqual = function (act, exp, msg) {
|
|
235
|
+
new Assertion(act, msg).to.not.eql(exp);
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* ### .isAbove(valueToCheck, valueToBeAbove, [message])
|
|
240
|
+
*
|
|
241
|
+
* Asserts `valueToCheck` is strictly greater than (>) `valueToBeAbove`
|
|
242
|
+
*
|
|
243
|
+
* assert.isAbove(5, 2, '5 is strictly greater than 2');
|
|
244
|
+
*
|
|
245
|
+
* @name isAbove
|
|
246
|
+
* @param {Mixed} valueToCheck
|
|
247
|
+
* @param {Mixed} valueToBeAbove
|
|
248
|
+
* @param {String} message
|
|
249
|
+
* @namespace Assert
|
|
250
|
+
* @api public
|
|
251
|
+
*/
|
|
252
|
+
|
|
253
|
+
assert.isAbove = function (val, abv, msg) {
|
|
254
|
+
new Assertion(val, msg).to.be.above(abv);
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* ### .isAtLeast(valueToCheck, valueToBeAtLeast, [message])
|
|
259
|
+
*
|
|
260
|
+
* Asserts `valueToCheck` is greater than or equal to (>=) `valueToBeAtLeast`
|
|
261
|
+
*
|
|
262
|
+
* assert.isAtLeast(5, 2, '5 is greater or equal to 2');
|
|
263
|
+
* assert.isAtLeast(3, 3, '3 is greater or equal to 3');
|
|
264
|
+
*
|
|
265
|
+
* @name isAtLeast
|
|
266
|
+
* @param {Mixed} valueToCheck
|
|
267
|
+
* @param {Mixed} valueToBeAtLeast
|
|
268
|
+
* @param {String} message
|
|
269
|
+
* @namespace Assert
|
|
270
|
+
* @api public
|
|
271
|
+
*/
|
|
272
|
+
|
|
273
|
+
assert.isAtLeast = function (val, atlst, msg) {
|
|
274
|
+
new Assertion(val, msg).to.be.least(atlst);
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* ### .isBelow(valueToCheck, valueToBeBelow, [message])
|
|
279
|
+
*
|
|
280
|
+
* Asserts `valueToCheck` is strictly less than (<) `valueToBeBelow`
|
|
281
|
+
*
|
|
282
|
+
* assert.isBelow(3, 6, '3 is strictly less than 6');
|
|
283
|
+
*
|
|
284
|
+
* @name isBelow
|
|
285
|
+
* @param {Mixed} valueToCheck
|
|
286
|
+
* @param {Mixed} valueToBeBelow
|
|
287
|
+
* @param {String} message
|
|
288
|
+
* @namespace Assert
|
|
289
|
+
* @api public
|
|
290
|
+
*/
|
|
291
|
+
|
|
292
|
+
assert.isBelow = function (val, blw, msg) {
|
|
293
|
+
new Assertion(val, msg).to.be.below(blw);
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* ### .isAtMost(valueToCheck, valueToBeAtMost, [message])
|
|
298
|
+
*
|
|
299
|
+
* Asserts `valueToCheck` is less than or equal to (<=) `valueToBeAtMost`
|
|
300
|
+
*
|
|
301
|
+
* assert.isAtMost(3, 6, '3 is less than or equal to 6');
|
|
302
|
+
* assert.isAtMost(4, 4, '4 is less than or equal to 4');
|
|
303
|
+
*
|
|
304
|
+
* @name isAtMost
|
|
305
|
+
* @param {Mixed} valueToCheck
|
|
306
|
+
* @param {Mixed} valueToBeAtMost
|
|
307
|
+
* @param {String} message
|
|
308
|
+
* @namespace Assert
|
|
309
|
+
* @api public
|
|
310
|
+
*/
|
|
311
|
+
|
|
312
|
+
assert.isAtMost = function (val, atmst, msg) {
|
|
313
|
+
new Assertion(val, msg).to.be.most(atmst);
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* ### .isTrue(value, [message])
|
|
318
|
+
*
|
|
319
|
+
* Asserts that `value` is true.
|
|
320
|
+
*
|
|
321
|
+
* var teaServed = true;
|
|
322
|
+
* assert.isTrue(teaServed, 'the tea has been served');
|
|
323
|
+
*
|
|
324
|
+
* @name isTrue
|
|
325
|
+
* @param {Mixed} value
|
|
326
|
+
* @param {String} message
|
|
327
|
+
* @namespace Assert
|
|
328
|
+
* @api public
|
|
329
|
+
*/
|
|
330
|
+
|
|
331
|
+
assert.isTrue = function (val, msg) {
|
|
332
|
+
new Assertion(val, msg).is['true'];
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* ### .isNotTrue(value, [message])
|
|
337
|
+
*
|
|
338
|
+
* Asserts that `value` is not true.
|
|
339
|
+
*
|
|
340
|
+
* var tea = 'tasty chai';
|
|
341
|
+
* assert.isNotTrue(tea, 'great, time for tea!');
|
|
342
|
+
*
|
|
343
|
+
* @name isNotTrue
|
|
344
|
+
* @param {Mixed} value
|
|
345
|
+
* @param {String} message
|
|
346
|
+
* @namespace Assert
|
|
347
|
+
* @api public
|
|
348
|
+
*/
|
|
349
|
+
|
|
350
|
+
assert.isNotTrue = function (val, msg) {
|
|
351
|
+
new Assertion(val, msg).to.not.equal(true);
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* ### .isFalse(value, [message])
|
|
356
|
+
*
|
|
357
|
+
* Asserts that `value` is false.
|
|
358
|
+
*
|
|
359
|
+
* var teaServed = false;
|
|
360
|
+
* assert.isFalse(teaServed, 'no tea yet? hmm...');
|
|
361
|
+
*
|
|
362
|
+
* @name isFalse
|
|
363
|
+
* @param {Mixed} value
|
|
364
|
+
* @param {String} message
|
|
365
|
+
* @namespace Assert
|
|
366
|
+
* @api public
|
|
367
|
+
*/
|
|
368
|
+
|
|
369
|
+
assert.isFalse = function (val, msg) {
|
|
370
|
+
new Assertion(val, msg).is['false'];
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* ### .isNotFalse(value, [message])
|
|
375
|
+
*
|
|
376
|
+
* Asserts that `value` is not false.
|
|
377
|
+
*
|
|
378
|
+
* var tea = 'tasty chai';
|
|
379
|
+
* assert.isNotFalse(tea, 'great, time for tea!');
|
|
380
|
+
*
|
|
381
|
+
* @name isNotFalse
|
|
382
|
+
* @param {Mixed} value
|
|
383
|
+
* @param {String} message
|
|
384
|
+
* @namespace Assert
|
|
385
|
+
* @api public
|
|
386
|
+
*/
|
|
387
|
+
|
|
388
|
+
assert.isNotFalse = function (val, msg) {
|
|
389
|
+
new Assertion(val, msg).to.not.equal(false);
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* ### .isNull(value, [message])
|
|
394
|
+
*
|
|
395
|
+
* Asserts that `value` is null.
|
|
396
|
+
*
|
|
397
|
+
* assert.isNull(err, 'there was no error');
|
|
398
|
+
*
|
|
399
|
+
* @name isNull
|
|
400
|
+
* @param {Mixed} value
|
|
401
|
+
* @param {String} message
|
|
402
|
+
* @namespace Assert
|
|
403
|
+
* @api public
|
|
404
|
+
*/
|
|
405
|
+
|
|
406
|
+
assert.isNull = function (val, msg) {
|
|
407
|
+
new Assertion(val, msg).to.equal(null);
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* ### .isNotNull(value, [message])
|
|
412
|
+
*
|
|
413
|
+
* Asserts that `value` is not null.
|
|
414
|
+
*
|
|
415
|
+
* var tea = 'tasty chai';
|
|
416
|
+
* assert.isNotNull(tea, 'great, time for tea!');
|
|
417
|
+
*
|
|
418
|
+
* @name isNotNull
|
|
419
|
+
* @param {Mixed} value
|
|
420
|
+
* @param {String} message
|
|
421
|
+
* @namespace Assert
|
|
422
|
+
* @api public
|
|
423
|
+
*/
|
|
424
|
+
|
|
425
|
+
assert.isNotNull = function (val, msg) {
|
|
426
|
+
new Assertion(val, msg).to.not.equal(null);
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* ### .isNaN
|
|
431
|
+
* Asserts that value is NaN
|
|
432
|
+
*
|
|
433
|
+
* assert.isNaN('foo', 'foo is NaN');
|
|
434
|
+
*
|
|
435
|
+
* @name isNaN
|
|
436
|
+
* @param {Mixed} value
|
|
437
|
+
* @param {String} message
|
|
438
|
+
* @namespace Assert
|
|
439
|
+
* @api public
|
|
440
|
+
*/
|
|
441
|
+
|
|
442
|
+
assert.isNaN = function (val, msg) {
|
|
443
|
+
new Assertion(val, msg).to.be.NaN;
|
|
444
|
+
};
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* ### .isNotNaN
|
|
448
|
+
* Asserts that value is not NaN
|
|
449
|
+
*
|
|
450
|
+
* assert.isNotNaN(4, '4 is not NaN');
|
|
451
|
+
*
|
|
452
|
+
* @name isNotNaN
|
|
453
|
+
* @param {Mixed} value
|
|
454
|
+
* @param {String} message
|
|
455
|
+
* @namespace Assert
|
|
456
|
+
* @api public
|
|
457
|
+
*/
|
|
458
|
+
assert.isNotNaN = function (val, msg) {
|
|
459
|
+
new Assertion(val, msg).not.to.be.NaN;
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* ### .isUndefined(value, [message])
|
|
464
|
+
*
|
|
465
|
+
* Asserts that `value` is `undefined`.
|
|
466
|
+
*
|
|
467
|
+
* var tea;
|
|
468
|
+
* assert.isUndefined(tea, 'no tea defined');
|
|
469
|
+
*
|
|
470
|
+
* @name isUndefined
|
|
471
|
+
* @param {Mixed} value
|
|
472
|
+
* @param {String} message
|
|
473
|
+
* @namespace Assert
|
|
474
|
+
* @api public
|
|
475
|
+
*/
|
|
476
|
+
|
|
477
|
+
assert.isUndefined = function (val, msg) {
|
|
478
|
+
new Assertion(val, msg).to.equal(undefined);
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* ### .isDefined(value, [message])
|
|
483
|
+
*
|
|
484
|
+
* Asserts that `value` is not `undefined`.
|
|
485
|
+
*
|
|
486
|
+
* var tea = 'cup of chai';
|
|
487
|
+
* assert.isDefined(tea, 'tea has been defined');
|
|
488
|
+
*
|
|
489
|
+
* @name isDefined
|
|
490
|
+
* @param {Mixed} value
|
|
491
|
+
* @param {String} message
|
|
492
|
+
* @namespace Assert
|
|
493
|
+
* @api public
|
|
494
|
+
*/
|
|
495
|
+
|
|
496
|
+
assert.isDefined = function (val, msg) {
|
|
497
|
+
new Assertion(val, msg).to.not.equal(undefined);
|
|
498
|
+
};
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* ### .isFunction(value, [message])
|
|
502
|
+
*
|
|
503
|
+
* Asserts that `value` is a function.
|
|
504
|
+
*
|
|
505
|
+
* function serveTea() { return 'cup of tea'; };
|
|
506
|
+
* assert.isFunction(serveTea, 'great, we can have tea now');
|
|
507
|
+
*
|
|
508
|
+
* @name isFunction
|
|
509
|
+
* @param {Mixed} value
|
|
510
|
+
* @param {String} message
|
|
511
|
+
* @namespace Assert
|
|
512
|
+
* @api public
|
|
513
|
+
*/
|
|
514
|
+
|
|
515
|
+
assert.isFunction = function (val, msg) {
|
|
516
|
+
new Assertion(val, msg).to.be.a('function');
|
|
517
|
+
};
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* ### .isNotFunction(value, [message])
|
|
521
|
+
*
|
|
522
|
+
* Asserts that `value` is _not_ a function.
|
|
523
|
+
*
|
|
524
|
+
* var serveTea = [ 'heat', 'pour', 'sip' ];
|
|
525
|
+
* assert.isNotFunction(serveTea, 'great, we have listed the steps');
|
|
526
|
+
*
|
|
527
|
+
* @name isNotFunction
|
|
528
|
+
* @param {Mixed} value
|
|
529
|
+
* @param {String} message
|
|
530
|
+
* @namespace Assert
|
|
531
|
+
* @api public
|
|
532
|
+
*/
|
|
533
|
+
|
|
534
|
+
assert.isNotFunction = function (val, msg) {
|
|
535
|
+
new Assertion(val, msg).to.not.be.a('function');
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* ### .isObject(value, [message])
|
|
540
|
+
*
|
|
541
|
+
* Asserts that `value` is an object of type 'Object' (as revealed by `Object.prototype.toString`).
|
|
542
|
+
* _The assertion does not match subclassed objects._
|
|
543
|
+
*
|
|
544
|
+
* var selection = { name: 'Chai', serve: 'with spices' };
|
|
545
|
+
* assert.isObject(selection, 'tea selection is an object');
|
|
546
|
+
*
|
|
547
|
+
* @name isObject
|
|
548
|
+
* @param {Mixed} value
|
|
549
|
+
* @param {String} message
|
|
550
|
+
* @namespace Assert
|
|
551
|
+
* @api public
|
|
552
|
+
*/
|
|
553
|
+
|
|
554
|
+
assert.isObject = function (val, msg) {
|
|
555
|
+
new Assertion(val, msg).to.be.a('object');
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* ### .isNotObject(value, [message])
|
|
560
|
+
*
|
|
561
|
+
* Asserts that `value` is _not_ an object of type 'Object' (as revealed by `Object.prototype.toString`).
|
|
562
|
+
*
|
|
563
|
+
* var selection = 'chai'
|
|
564
|
+
* assert.isNotObject(selection, 'tea selection is not an object');
|
|
565
|
+
* assert.isNotObject(null, 'null is not an object');
|
|
566
|
+
*
|
|
567
|
+
* @name isNotObject
|
|
568
|
+
* @param {Mixed} value
|
|
569
|
+
* @param {String} message
|
|
570
|
+
* @namespace Assert
|
|
571
|
+
* @api public
|
|
572
|
+
*/
|
|
573
|
+
|
|
574
|
+
assert.isNotObject = function (val, msg) {
|
|
575
|
+
new Assertion(val, msg).to.not.be.a('object');
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* ### .isArray(value, [message])
|
|
580
|
+
*
|
|
581
|
+
* Asserts that `value` is an array.
|
|
582
|
+
*
|
|
583
|
+
* var menu = [ 'green', 'chai', 'oolong' ];
|
|
584
|
+
* assert.isArray(menu, 'what kind of tea do we want?');
|
|
585
|
+
*
|
|
586
|
+
* @name isArray
|
|
587
|
+
* @param {Mixed} value
|
|
588
|
+
* @param {String} message
|
|
589
|
+
* @namespace Assert
|
|
590
|
+
* @api public
|
|
591
|
+
*/
|
|
592
|
+
|
|
593
|
+
assert.isArray = function (val, msg) {
|
|
594
|
+
new Assertion(val, msg).to.be.an('array');
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* ### .isNotArray(value, [message])
|
|
599
|
+
*
|
|
600
|
+
* Asserts that `value` is _not_ an array.
|
|
601
|
+
*
|
|
602
|
+
* var menu = 'green|chai|oolong';
|
|
603
|
+
* assert.isNotArray(menu, 'what kind of tea do we want?');
|
|
604
|
+
*
|
|
605
|
+
* @name isNotArray
|
|
606
|
+
* @param {Mixed} value
|
|
607
|
+
* @param {String} message
|
|
608
|
+
* @namespace Assert
|
|
609
|
+
* @api public
|
|
610
|
+
*/
|
|
611
|
+
|
|
612
|
+
assert.isNotArray = function (val, msg) {
|
|
613
|
+
new Assertion(val, msg).to.not.be.an('array');
|
|
614
|
+
};
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* ### .isString(value, [message])
|
|
618
|
+
*
|
|
619
|
+
* Asserts that `value` is a string.
|
|
620
|
+
*
|
|
621
|
+
* var teaOrder = 'chai';
|
|
622
|
+
* assert.isString(teaOrder, 'order placed');
|
|
623
|
+
*
|
|
624
|
+
* @name isString
|
|
625
|
+
* @param {Mixed} value
|
|
626
|
+
* @param {String} message
|
|
627
|
+
* @namespace Assert
|
|
628
|
+
* @api public
|
|
629
|
+
*/
|
|
630
|
+
|
|
631
|
+
assert.isString = function (val, msg) {
|
|
632
|
+
new Assertion(val, msg).to.be.a('string');
|
|
633
|
+
};
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* ### .isNotString(value, [message])
|
|
637
|
+
*
|
|
638
|
+
* Asserts that `value` is _not_ a string.
|
|
639
|
+
*
|
|
640
|
+
* var teaOrder = 4;
|
|
641
|
+
* assert.isNotString(teaOrder, 'order placed');
|
|
642
|
+
*
|
|
643
|
+
* @name isNotString
|
|
644
|
+
* @param {Mixed} value
|
|
645
|
+
* @param {String} message
|
|
646
|
+
* @namespace Assert
|
|
647
|
+
* @api public
|
|
648
|
+
*/
|
|
649
|
+
|
|
650
|
+
assert.isNotString = function (val, msg) {
|
|
651
|
+
new Assertion(val, msg).to.not.be.a('string');
|
|
652
|
+
};
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* ### .isNumber(value, [message])
|
|
656
|
+
*
|
|
657
|
+
* Asserts that `value` is a number.
|
|
658
|
+
*
|
|
659
|
+
* var cups = 2;
|
|
660
|
+
* assert.isNumber(cups, 'how many cups');
|
|
661
|
+
*
|
|
662
|
+
* @name isNumber
|
|
663
|
+
* @param {Number} value
|
|
664
|
+
* @param {String} message
|
|
665
|
+
* @namespace Assert
|
|
666
|
+
* @api public
|
|
667
|
+
*/
|
|
668
|
+
|
|
669
|
+
assert.isNumber = function (val, msg) {
|
|
670
|
+
new Assertion(val, msg).to.be.a('number');
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* ### .isNotNumber(value, [message])
|
|
675
|
+
*
|
|
676
|
+
* Asserts that `value` is _not_ a number.
|
|
677
|
+
*
|
|
678
|
+
* var cups = '2 cups please';
|
|
679
|
+
* assert.isNotNumber(cups, 'how many cups');
|
|
680
|
+
*
|
|
681
|
+
* @name isNotNumber
|
|
682
|
+
* @param {Mixed} value
|
|
683
|
+
* @param {String} message
|
|
684
|
+
* @namespace Assert
|
|
685
|
+
* @api public
|
|
686
|
+
*/
|
|
687
|
+
|
|
688
|
+
assert.isNotNumber = function (val, msg) {
|
|
689
|
+
new Assertion(val, msg).to.not.be.a('number');
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* ### .isBoolean(value, [message])
|
|
694
|
+
*
|
|
695
|
+
* Asserts that `value` is a boolean.
|
|
696
|
+
*
|
|
697
|
+
* var teaReady = true
|
|
698
|
+
* , teaServed = false;
|
|
699
|
+
*
|
|
700
|
+
* assert.isBoolean(teaReady, 'is the tea ready');
|
|
701
|
+
* assert.isBoolean(teaServed, 'has tea been served');
|
|
702
|
+
*
|
|
703
|
+
* @name isBoolean
|
|
704
|
+
* @param {Mixed} value
|
|
705
|
+
* @param {String} message
|
|
706
|
+
* @namespace Assert
|
|
707
|
+
* @api public
|
|
708
|
+
*/
|
|
709
|
+
|
|
710
|
+
assert.isBoolean = function (val, msg) {
|
|
711
|
+
new Assertion(val, msg).to.be.a('boolean');
|
|
712
|
+
};
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* ### .isNotBoolean(value, [message])
|
|
716
|
+
*
|
|
717
|
+
* Asserts that `value` is _not_ a boolean.
|
|
718
|
+
*
|
|
719
|
+
* var teaReady = 'yep'
|
|
720
|
+
* , teaServed = 'nope';
|
|
721
|
+
*
|
|
722
|
+
* assert.isNotBoolean(teaReady, 'is the tea ready');
|
|
723
|
+
* assert.isNotBoolean(teaServed, 'has tea been served');
|
|
724
|
+
*
|
|
725
|
+
* @name isNotBoolean
|
|
726
|
+
* @param {Mixed} value
|
|
727
|
+
* @param {String} message
|
|
728
|
+
* @namespace Assert
|
|
729
|
+
* @api public
|
|
730
|
+
*/
|
|
731
|
+
|
|
732
|
+
assert.isNotBoolean = function (val, msg) {
|
|
733
|
+
new Assertion(val, msg).to.not.be.a('boolean');
|
|
734
|
+
};
|
|
735
|
+
|
|
736
|
+
/**
|
|
737
|
+
* ### .typeOf(value, name, [message])
|
|
738
|
+
*
|
|
739
|
+
* Asserts that `value`'s type is `name`, as determined by
|
|
740
|
+
* `Object.prototype.toString`.
|
|
741
|
+
*
|
|
742
|
+
* assert.typeOf({ tea: 'chai' }, 'object', 'we have an object');
|
|
743
|
+
* assert.typeOf(['chai', 'jasmine'], 'array', 'we have an array');
|
|
744
|
+
* assert.typeOf('tea', 'string', 'we have a string');
|
|
745
|
+
* assert.typeOf(/tea/, 'regexp', 'we have a regular expression');
|
|
746
|
+
* assert.typeOf(null, 'null', 'we have a null');
|
|
747
|
+
* assert.typeOf(undefined, 'undefined', 'we have an undefined');
|
|
748
|
+
*
|
|
749
|
+
* @name typeOf
|
|
750
|
+
* @param {Mixed} value
|
|
751
|
+
* @param {String} name
|
|
752
|
+
* @param {String} message
|
|
753
|
+
* @namespace Assert
|
|
754
|
+
* @api public
|
|
755
|
+
*/
|
|
756
|
+
|
|
757
|
+
assert.typeOf = function (val, type, msg) {
|
|
758
|
+
new Assertion(val, msg).to.be.a(type);
|
|
759
|
+
};
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* ### .notTypeOf(value, name, [message])
|
|
763
|
+
*
|
|
764
|
+
* Asserts that `value`'s type is _not_ `name`, as determined by
|
|
765
|
+
* `Object.prototype.toString`.
|
|
766
|
+
*
|
|
767
|
+
* assert.notTypeOf('tea', 'number', 'strings are not numbers');
|
|
768
|
+
*
|
|
769
|
+
* @name notTypeOf
|
|
770
|
+
* @param {Mixed} value
|
|
771
|
+
* @param {String} typeof name
|
|
772
|
+
* @param {String} message
|
|
773
|
+
* @namespace Assert
|
|
774
|
+
* @api public
|
|
775
|
+
*/
|
|
776
|
+
|
|
777
|
+
assert.notTypeOf = function (val, type, msg) {
|
|
778
|
+
new Assertion(val, msg).to.not.be.a(type);
|
|
779
|
+
};
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* ### .instanceOf(object, constructor, [message])
|
|
783
|
+
*
|
|
784
|
+
* Asserts that `value` is an instance of `constructor`.
|
|
785
|
+
*
|
|
786
|
+
* var Tea = function (name) { this.name = name; }
|
|
787
|
+
* , chai = new Tea('chai');
|
|
788
|
+
*
|
|
789
|
+
* assert.instanceOf(chai, Tea, 'chai is an instance of tea');
|
|
790
|
+
*
|
|
791
|
+
* @name instanceOf
|
|
792
|
+
* @param {Object} object
|
|
793
|
+
* @param {Constructor} constructor
|
|
794
|
+
* @param {String} message
|
|
795
|
+
* @namespace Assert
|
|
796
|
+
* @api public
|
|
797
|
+
*/
|
|
798
|
+
|
|
799
|
+
assert.instanceOf = function (val, type, msg) {
|
|
800
|
+
new Assertion(val, msg).to.be.instanceOf(type);
|
|
801
|
+
};
|
|
802
|
+
|
|
803
|
+
/**
|
|
804
|
+
* ### .notInstanceOf(object, constructor, [message])
|
|
805
|
+
*
|
|
806
|
+
* Asserts `value` is not an instance of `constructor`.
|
|
807
|
+
*
|
|
808
|
+
* var Tea = function (name) { this.name = name; }
|
|
809
|
+
* , chai = new String('chai');
|
|
810
|
+
*
|
|
811
|
+
* assert.notInstanceOf(chai, Tea, 'chai is not an instance of tea');
|
|
812
|
+
*
|
|
813
|
+
* @name notInstanceOf
|
|
814
|
+
* @param {Object} object
|
|
815
|
+
* @param {Constructor} constructor
|
|
816
|
+
* @param {String} message
|
|
817
|
+
* @namespace Assert
|
|
818
|
+
* @api public
|
|
819
|
+
*/
|
|
820
|
+
|
|
821
|
+
assert.notInstanceOf = function (val, type, msg) {
|
|
822
|
+
new Assertion(val, msg).to.not.be.instanceOf(type);
|
|
823
|
+
};
|
|
824
|
+
|
|
825
|
+
/**
|
|
826
|
+
* ### .include(haystack, needle, [message])
|
|
827
|
+
*
|
|
828
|
+
* Asserts that `haystack` includes `needle`. Works
|
|
829
|
+
* for strings and arrays.
|
|
830
|
+
*
|
|
831
|
+
* assert.include('foobar', 'bar', 'foobar contains string "bar"');
|
|
832
|
+
* assert.include([ 1, 2, 3 ], 3, 'array contains value');
|
|
833
|
+
*
|
|
834
|
+
* @name include
|
|
835
|
+
* @param {Array|String} haystack
|
|
836
|
+
* @param {Mixed} needle
|
|
837
|
+
* @param {String} message
|
|
838
|
+
* @namespace Assert
|
|
839
|
+
* @api public
|
|
840
|
+
*/
|
|
841
|
+
|
|
842
|
+
assert.include = function (exp, inc, msg) {
|
|
843
|
+
new Assertion(exp, msg, assert.include).include(inc);
|
|
844
|
+
};
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* ### .notInclude(haystack, needle, [message])
|
|
848
|
+
*
|
|
849
|
+
* Asserts that `haystack` does not include `needle`. Works
|
|
850
|
+
* for strings and arrays.
|
|
851
|
+
*
|
|
852
|
+
* assert.notInclude('foobar', 'baz', 'string not include substring');
|
|
853
|
+
* assert.notInclude([ 1, 2, 3 ], 4, 'array not include contain value');
|
|
854
|
+
*
|
|
855
|
+
* @name notInclude
|
|
856
|
+
* @param {Array|String} haystack
|
|
857
|
+
* @param {Mixed} needle
|
|
858
|
+
* @param {String} message
|
|
859
|
+
* @namespace Assert
|
|
860
|
+
* @api public
|
|
861
|
+
*/
|
|
862
|
+
|
|
863
|
+
assert.notInclude = function (exp, inc, msg) {
|
|
864
|
+
new Assertion(exp, msg, assert.notInclude).not.include(inc);
|
|
865
|
+
};
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* ### .match(value, regexp, [message])
|
|
869
|
+
*
|
|
870
|
+
* Asserts that `value` matches the regular expression `regexp`.
|
|
871
|
+
*
|
|
872
|
+
* assert.match('foobar', /^foo/, 'regexp matches');
|
|
873
|
+
*
|
|
874
|
+
* @name match
|
|
875
|
+
* @param {Mixed} value
|
|
876
|
+
* @param {RegExp} regexp
|
|
877
|
+
* @param {String} message
|
|
878
|
+
* @namespace Assert
|
|
879
|
+
* @api public
|
|
880
|
+
*/
|
|
881
|
+
|
|
882
|
+
assert.match = function (exp, re, msg) {
|
|
883
|
+
new Assertion(exp, msg).to.match(re);
|
|
884
|
+
};
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* ### .notMatch(value, regexp, [message])
|
|
888
|
+
*
|
|
889
|
+
* Asserts that `value` does not match the regular expression `regexp`.
|
|
890
|
+
*
|
|
891
|
+
* assert.notMatch('foobar', /^foo/, 'regexp does not match');
|
|
892
|
+
*
|
|
893
|
+
* @name notMatch
|
|
894
|
+
* @param {Mixed} value
|
|
895
|
+
* @param {RegExp} regexp
|
|
896
|
+
* @param {String} message
|
|
897
|
+
* @namespace Assert
|
|
898
|
+
* @api public
|
|
899
|
+
*/
|
|
900
|
+
|
|
901
|
+
assert.notMatch = function (exp, re, msg) {
|
|
902
|
+
new Assertion(exp, msg).to.not.match(re);
|
|
903
|
+
};
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* ### .property(object, property, [message])
|
|
907
|
+
*
|
|
908
|
+
* Asserts that `object` has a property named by `property`.
|
|
909
|
+
*
|
|
910
|
+
* assert.property({ tea: { green: 'matcha' }}, 'tea');
|
|
911
|
+
*
|
|
912
|
+
* @name property
|
|
913
|
+
* @param {Object} object
|
|
914
|
+
* @param {String} property
|
|
915
|
+
* @param {String} message
|
|
916
|
+
* @namespace Assert
|
|
917
|
+
* @api public
|
|
918
|
+
*/
|
|
919
|
+
|
|
920
|
+
assert.property = function (obj, prop, msg) {
|
|
921
|
+
new Assertion(obj, msg).to.have.property(prop);
|
|
922
|
+
};
|
|
923
|
+
|
|
924
|
+
/**
|
|
925
|
+
* ### .notProperty(object, property, [message])
|
|
926
|
+
*
|
|
927
|
+
* Asserts that `object` does _not_ have a property named by `property`.
|
|
928
|
+
*
|
|
929
|
+
* assert.notProperty({ tea: { green: 'matcha' }}, 'coffee');
|
|
930
|
+
*
|
|
931
|
+
* @name notProperty
|
|
932
|
+
* @param {Object} object
|
|
933
|
+
* @param {String} property
|
|
934
|
+
* @param {String} message
|
|
935
|
+
* @namespace Assert
|
|
936
|
+
* @api public
|
|
937
|
+
*/
|
|
938
|
+
|
|
939
|
+
assert.notProperty = function (obj, prop, msg) {
|
|
940
|
+
new Assertion(obj, msg).to.not.have.property(prop);
|
|
941
|
+
};
|
|
942
|
+
|
|
943
|
+
/**
|
|
944
|
+
* ### .deepProperty(object, property, [message])
|
|
945
|
+
*
|
|
946
|
+
* Asserts that `object` has a property named by `property`, which can be a
|
|
947
|
+
* string using dot- and bracket-notation for deep reference.
|
|
948
|
+
*
|
|
949
|
+
* assert.deepProperty({ tea: { green: 'matcha' }}, 'tea.green');
|
|
950
|
+
*
|
|
951
|
+
* @name deepProperty
|
|
952
|
+
* @param {Object} object
|
|
953
|
+
* @param {String} property
|
|
954
|
+
* @param {String} message
|
|
955
|
+
* @namespace Assert
|
|
956
|
+
* @api public
|
|
957
|
+
*/
|
|
958
|
+
|
|
959
|
+
assert.deepProperty = function (obj, prop, msg) {
|
|
960
|
+
new Assertion(obj, msg).to.have.deep.property(prop);
|
|
961
|
+
};
|
|
962
|
+
|
|
963
|
+
/**
|
|
964
|
+
* ### .notDeepProperty(object, property, [message])
|
|
965
|
+
*
|
|
966
|
+
* Asserts that `object` does _not_ have a property named by `property`, which
|
|
967
|
+
* can be a string using dot- and bracket-notation for deep reference.
|
|
968
|
+
*
|
|
969
|
+
* assert.notDeepProperty({ tea: { green: 'matcha' }}, 'tea.oolong');
|
|
970
|
+
*
|
|
971
|
+
* @name notDeepProperty
|
|
972
|
+
* @param {Object} object
|
|
973
|
+
* @param {String} property
|
|
974
|
+
* @param {String} message
|
|
975
|
+
* @namespace Assert
|
|
976
|
+
* @api public
|
|
977
|
+
*/
|
|
978
|
+
|
|
979
|
+
assert.notDeepProperty = function (obj, prop, msg) {
|
|
980
|
+
new Assertion(obj, msg).to.not.have.deep.property(prop);
|
|
981
|
+
};
|
|
982
|
+
|
|
983
|
+
/**
|
|
984
|
+
* ### .propertyVal(object, property, value, [message])
|
|
985
|
+
*
|
|
986
|
+
* Asserts that `object` has a property named by `property` with value given
|
|
987
|
+
* by `value`.
|
|
988
|
+
*
|
|
989
|
+
* assert.propertyVal({ tea: 'is good' }, 'tea', 'is good');
|
|
990
|
+
*
|
|
991
|
+
* @name propertyVal
|
|
992
|
+
* @param {Object} object
|
|
993
|
+
* @param {String} property
|
|
994
|
+
* @param {Mixed} value
|
|
995
|
+
* @param {String} message
|
|
996
|
+
* @namespace Assert
|
|
997
|
+
* @api public
|
|
998
|
+
*/
|
|
999
|
+
|
|
1000
|
+
assert.propertyVal = function (obj, prop, val, msg) {
|
|
1001
|
+
new Assertion(obj, msg).to.have.property(prop, val);
|
|
1002
|
+
};
|
|
1003
|
+
|
|
1004
|
+
/**
|
|
1005
|
+
* ### .propertyNotVal(object, property, value, [message])
|
|
1006
|
+
*
|
|
1007
|
+
* Asserts that `object` has a property named by `property`, but with a value
|
|
1008
|
+
* different from that given by `value`.
|
|
1009
|
+
*
|
|
1010
|
+
* assert.propertyNotVal({ tea: 'is good' }, 'tea', 'is bad');
|
|
1011
|
+
*
|
|
1012
|
+
* @name propertyNotVal
|
|
1013
|
+
* @param {Object} object
|
|
1014
|
+
* @param {String} property
|
|
1015
|
+
* @param {Mixed} value
|
|
1016
|
+
* @param {String} message
|
|
1017
|
+
* @namespace Assert
|
|
1018
|
+
* @api public
|
|
1019
|
+
*/
|
|
1020
|
+
|
|
1021
|
+
assert.propertyNotVal = function (obj, prop, val, msg) {
|
|
1022
|
+
new Assertion(obj, msg).to.not.have.property(prop, val);
|
|
1023
|
+
};
|
|
1024
|
+
|
|
1025
|
+
/**
|
|
1026
|
+
* ### .deepPropertyVal(object, property, value, [message])
|
|
1027
|
+
*
|
|
1028
|
+
* Asserts that `object` has a property named by `property` with value given
|
|
1029
|
+
* by `value`. `property` can use dot- and bracket-notation for deep
|
|
1030
|
+
* reference.
|
|
1031
|
+
*
|
|
1032
|
+
* assert.deepPropertyVal({ tea: { green: 'matcha' }}, 'tea.green', 'matcha');
|
|
1033
|
+
*
|
|
1034
|
+
* @name deepPropertyVal
|
|
1035
|
+
* @param {Object} object
|
|
1036
|
+
* @param {String} property
|
|
1037
|
+
* @param {Mixed} value
|
|
1038
|
+
* @param {String} message
|
|
1039
|
+
* @namespace Assert
|
|
1040
|
+
* @api public
|
|
1041
|
+
*/
|
|
1042
|
+
|
|
1043
|
+
assert.deepPropertyVal = function (obj, prop, val, msg) {
|
|
1044
|
+
new Assertion(obj, msg).to.have.deep.property(prop, val);
|
|
1045
|
+
};
|
|
1046
|
+
|
|
1047
|
+
/**
|
|
1048
|
+
* ### .deepPropertyNotVal(object, property, value, [message])
|
|
1049
|
+
*
|
|
1050
|
+
* Asserts that `object` has a property named by `property`, but with a value
|
|
1051
|
+
* different from that given by `value`. `property` can use dot- and
|
|
1052
|
+
* bracket-notation for deep reference.
|
|
1053
|
+
*
|
|
1054
|
+
* assert.deepPropertyNotVal({ tea: { green: 'matcha' }}, 'tea.green', 'konacha');
|
|
1055
|
+
*
|
|
1056
|
+
* @name deepPropertyNotVal
|
|
1057
|
+
* @param {Object} object
|
|
1058
|
+
* @param {String} property
|
|
1059
|
+
* @param {Mixed} value
|
|
1060
|
+
* @param {String} message
|
|
1061
|
+
* @namespace Assert
|
|
1062
|
+
* @api public
|
|
1063
|
+
*/
|
|
1064
|
+
|
|
1065
|
+
assert.deepPropertyNotVal = function (obj, prop, val, msg) {
|
|
1066
|
+
new Assertion(obj, msg).to.not.have.deep.property(prop, val);
|
|
1067
|
+
};
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* ### .lengthOf(object, length, [message])
|
|
1071
|
+
*
|
|
1072
|
+
* Asserts that `object` has a `length` property with the expected value.
|
|
1073
|
+
*
|
|
1074
|
+
* assert.lengthOf([1,2,3], 3, 'array has length of 3');
|
|
1075
|
+
* assert.lengthOf('foobar', 6, 'string has length of 6');
|
|
1076
|
+
*
|
|
1077
|
+
* @name lengthOf
|
|
1078
|
+
* @param {Mixed} object
|
|
1079
|
+
* @param {Number} length
|
|
1080
|
+
* @param {String} message
|
|
1081
|
+
* @namespace Assert
|
|
1082
|
+
* @api public
|
|
1083
|
+
*/
|
|
1084
|
+
|
|
1085
|
+
assert.lengthOf = function (exp, len, msg) {
|
|
1086
|
+
new Assertion(exp, msg).to.have.length(len);
|
|
1087
|
+
};
|
|
1088
|
+
|
|
1089
|
+
/**
|
|
1090
|
+
* ### .throws(function, [constructor/string/regexp], [string/regexp], [message])
|
|
1091
|
+
*
|
|
1092
|
+
* Asserts that `function` will throw an error that is an instance of
|
|
1093
|
+
* `constructor`, or alternately that it will throw an error with message
|
|
1094
|
+
* matching `regexp`.
|
|
1095
|
+
*
|
|
1096
|
+
* assert.throws(fn, 'function throws a reference error');
|
|
1097
|
+
* assert.throws(fn, /function throws a reference error/);
|
|
1098
|
+
* assert.throws(fn, ReferenceError);
|
|
1099
|
+
* assert.throws(fn, ReferenceError, 'function throws a reference error');
|
|
1100
|
+
* assert.throws(fn, ReferenceError, /function throws a reference error/);
|
|
1101
|
+
*
|
|
1102
|
+
* @name throws
|
|
1103
|
+
* @alias throw
|
|
1104
|
+
* @alias Throw
|
|
1105
|
+
* @param {Function} function
|
|
1106
|
+
* @param {ErrorConstructor} constructor
|
|
1107
|
+
* @param {RegExp} regexp
|
|
1108
|
+
* @param {String} message
|
|
1109
|
+
* @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types
|
|
1110
|
+
* @namespace Assert
|
|
1111
|
+
* @api public
|
|
1112
|
+
*/
|
|
1113
|
+
|
|
1114
|
+
assert.throws = function (fn, errt, errs, msg) {
|
|
1115
|
+
if ('string' === typeof errt || errt instanceof RegExp) {
|
|
1116
|
+
errs = errt;
|
|
1117
|
+
errt = null;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
var assertErr = new Assertion(fn, msg).to.throw(errt, errs);
|
|
1121
|
+
return flag(assertErr, 'object');
|
|
1122
|
+
};
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* ### .doesNotThrow(function, [constructor/regexp], [message])
|
|
1126
|
+
*
|
|
1127
|
+
* Asserts that `function` will _not_ throw an error that is an instance of
|
|
1128
|
+
* `constructor`, or alternately that it will not throw an error with message
|
|
1129
|
+
* matching `regexp`.
|
|
1130
|
+
*
|
|
1131
|
+
* assert.doesNotThrow(fn, Error, 'function does not throw');
|
|
1132
|
+
*
|
|
1133
|
+
* @name doesNotThrow
|
|
1134
|
+
* @param {Function} function
|
|
1135
|
+
* @param {ErrorConstructor} constructor
|
|
1136
|
+
* @param {RegExp} regexp
|
|
1137
|
+
* @param {String} message
|
|
1138
|
+
* @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types
|
|
1139
|
+
* @namespace Assert
|
|
1140
|
+
* @api public
|
|
1141
|
+
*/
|
|
1142
|
+
|
|
1143
|
+
assert.doesNotThrow = function (fn, type, msg) {
|
|
1144
|
+
if ('string' === typeof type) {
|
|
1145
|
+
msg = type;
|
|
1146
|
+
type = null;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
new Assertion(fn, msg).to.not.Throw(type);
|
|
1150
|
+
};
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
* ### .operator(val1, operator, val2, [message])
|
|
1154
|
+
*
|
|
1155
|
+
* Compares two values using `operator`.
|
|
1156
|
+
*
|
|
1157
|
+
* assert.operator(1, '<', 2, 'everything is ok');
|
|
1158
|
+
* assert.operator(1, '>', 2, 'this will fail');
|
|
1159
|
+
*
|
|
1160
|
+
* @name operator
|
|
1161
|
+
* @param {Mixed} val1
|
|
1162
|
+
* @param {String} operator
|
|
1163
|
+
* @param {Mixed} val2
|
|
1164
|
+
* @param {String} message
|
|
1165
|
+
* @namespace Assert
|
|
1166
|
+
* @api public
|
|
1167
|
+
*/
|
|
1168
|
+
|
|
1169
|
+
assert.operator = function (val, operator, val2, msg) {
|
|
1170
|
+
var ok;
|
|
1171
|
+
switch(operator) {
|
|
1172
|
+
case '==':
|
|
1173
|
+
ok = val == val2;
|
|
1174
|
+
break;
|
|
1175
|
+
case '===':
|
|
1176
|
+
ok = val === val2;
|
|
1177
|
+
break;
|
|
1178
|
+
case '>':
|
|
1179
|
+
ok = val > val2;
|
|
1180
|
+
break;
|
|
1181
|
+
case '>=':
|
|
1182
|
+
ok = val >= val2;
|
|
1183
|
+
break;
|
|
1184
|
+
case '<':
|
|
1185
|
+
ok = val < val2;
|
|
1186
|
+
break;
|
|
1187
|
+
case '<=':
|
|
1188
|
+
ok = val <= val2;
|
|
1189
|
+
break;
|
|
1190
|
+
case '!=':
|
|
1191
|
+
ok = val != val2;
|
|
1192
|
+
break;
|
|
1193
|
+
case '!==':
|
|
1194
|
+
ok = val !== val2;
|
|
1195
|
+
break;
|
|
1196
|
+
default:
|
|
1197
|
+
throw new Error('Invalid operator "' + operator + '"');
|
|
1198
|
+
}
|
|
1199
|
+
var test = new Assertion(ok, msg);
|
|
1200
|
+
test.assert(
|
|
1201
|
+
true === flag(test, 'object')
|
|
1202
|
+
, 'expected ' + util.inspect(val) + ' to be ' + operator + ' ' + util.inspect(val2)
|
|
1203
|
+
, 'expected ' + util.inspect(val) + ' to not be ' + operator + ' ' + util.inspect(val2) );
|
|
1204
|
+
};
|
|
1205
|
+
|
|
1206
|
+
/**
|
|
1207
|
+
* ### .closeTo(actual, expected, delta, [message])
|
|
1208
|
+
*
|
|
1209
|
+
* Asserts that the target is equal `expected`, to within a +/- `delta` range.
|
|
1210
|
+
*
|
|
1211
|
+
* assert.closeTo(1.5, 1, 0.5, 'numbers are close');
|
|
1212
|
+
*
|
|
1213
|
+
* @name closeTo
|
|
1214
|
+
* @param {Number} actual
|
|
1215
|
+
* @param {Number} expected
|
|
1216
|
+
* @param {Number} delta
|
|
1217
|
+
* @param {String} message
|
|
1218
|
+
* @namespace Assert
|
|
1219
|
+
* @api public
|
|
1220
|
+
*/
|
|
1221
|
+
|
|
1222
|
+
assert.closeTo = function (act, exp, delta, msg) {
|
|
1223
|
+
new Assertion(act, msg).to.be.closeTo(exp, delta);
|
|
1224
|
+
};
|
|
1225
|
+
|
|
1226
|
+
/**
|
|
1227
|
+
* ### .approximately(actual, expected, delta, [message])
|
|
1228
|
+
*
|
|
1229
|
+
* Asserts that the target is equal `expected`, to within a +/- `delta` range.
|
|
1230
|
+
*
|
|
1231
|
+
* assert.approximately(1.5, 1, 0.5, 'numbers are close');
|
|
1232
|
+
*
|
|
1233
|
+
* @name approximately
|
|
1234
|
+
* @param {Number} actual
|
|
1235
|
+
* @param {Number} expected
|
|
1236
|
+
* @param {Number} delta
|
|
1237
|
+
* @param {String} message
|
|
1238
|
+
* @namespace Assert
|
|
1239
|
+
* @api public
|
|
1240
|
+
*/
|
|
1241
|
+
|
|
1242
|
+
assert.approximately = function (act, exp, delta, msg) {
|
|
1243
|
+
new Assertion(act, msg).to.be.approximately(exp, delta);
|
|
1244
|
+
};
|
|
1245
|
+
|
|
1246
|
+
/**
|
|
1247
|
+
* ### .sameMembers(set1, set2, [message])
|
|
1248
|
+
*
|
|
1249
|
+
* Asserts that `set1` and `set2` have the same members.
|
|
1250
|
+
* Order is not taken into account.
|
|
1251
|
+
*
|
|
1252
|
+
* assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members');
|
|
1253
|
+
*
|
|
1254
|
+
* @name sameMembers
|
|
1255
|
+
* @param {Array} set1
|
|
1256
|
+
* @param {Array} set2
|
|
1257
|
+
* @param {String} message
|
|
1258
|
+
* @namespace Assert
|
|
1259
|
+
* @api public
|
|
1260
|
+
*/
|
|
1261
|
+
|
|
1262
|
+
assert.sameMembers = function (set1, set2, msg) {
|
|
1263
|
+
new Assertion(set1, msg).to.have.same.members(set2);
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
/**
|
|
1267
|
+
* ### .sameDeepMembers(set1, set2, [message])
|
|
1268
|
+
*
|
|
1269
|
+
* Asserts that `set1` and `set2` have the same members - using a deep equality checking.
|
|
1270
|
+
* Order is not taken into account.
|
|
1271
|
+
*
|
|
1272
|
+
* assert.sameDeepMembers([ {b: 3}, {a: 2}, {c: 5} ], [ {c: 5}, {b: 3}, {a: 2} ], 'same deep members');
|
|
1273
|
+
*
|
|
1274
|
+
* @name sameDeepMembers
|
|
1275
|
+
* @param {Array} set1
|
|
1276
|
+
* @param {Array} set2
|
|
1277
|
+
* @param {String} message
|
|
1278
|
+
* @namespace Assert
|
|
1279
|
+
* @api public
|
|
1280
|
+
*/
|
|
1281
|
+
|
|
1282
|
+
assert.sameDeepMembers = function (set1, set2, msg) {
|
|
1283
|
+
new Assertion(set1, msg).to.have.same.deep.members(set2);
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1286
|
+
/**
|
|
1287
|
+
* ### .includeMembers(superset, subset, [message])
|
|
1288
|
+
*
|
|
1289
|
+
* Asserts that `subset` is included in `superset`.
|
|
1290
|
+
* Order is not taken into account.
|
|
1291
|
+
*
|
|
1292
|
+
* assert.includeMembers([ 1, 2, 3 ], [ 2, 1 ], 'include members');
|
|
1293
|
+
*
|
|
1294
|
+
* @name includeMembers
|
|
1295
|
+
* @param {Array} superset
|
|
1296
|
+
* @param {Array} subset
|
|
1297
|
+
* @param {String} message
|
|
1298
|
+
* @namespace Assert
|
|
1299
|
+
* @api public
|
|
1300
|
+
*/
|
|
1301
|
+
|
|
1302
|
+
assert.includeMembers = function (superset, subset, msg) {
|
|
1303
|
+
new Assertion(superset, msg).to.include.members(subset);
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
/**
|
|
1307
|
+
* ### .includeDeepMembers(superset, subset, [message])
|
|
1308
|
+
*
|
|
1309
|
+
* Asserts that `subset` is included in `superset` - using deep equality checking.
|
|
1310
|
+
* Order is not taken into account.
|
|
1311
|
+
* Duplicates are ignored.
|
|
1312
|
+
*
|
|
1313
|
+
* assert.includeDeepMembers([ {a: 1}, {b: 2}, {c: 3} ], [ {b: 2}, {a: 1}, {b: 2} ], 'include deep members');
|
|
1314
|
+
*
|
|
1315
|
+
* @name includeDeepMembers
|
|
1316
|
+
* @param {Array} superset
|
|
1317
|
+
* @param {Array} subset
|
|
1318
|
+
* @param {String} message
|
|
1319
|
+
* @namespace Assert
|
|
1320
|
+
* @api public
|
|
1321
|
+
*/
|
|
1322
|
+
|
|
1323
|
+
assert.includeDeepMembers = function (superset, subset, msg) {
|
|
1324
|
+
new Assertion(superset, msg).to.include.deep.members(subset);
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
/**
|
|
1328
|
+
* ### .oneOf(inList, list, [message])
|
|
1329
|
+
*
|
|
1330
|
+
* Asserts that non-object, non-array value `inList` appears in the flat array `list`.
|
|
1331
|
+
*
|
|
1332
|
+
* assert.oneOf(1, [ 2, 1 ], 'Not found in list');
|
|
1333
|
+
*
|
|
1334
|
+
* @name oneOf
|
|
1335
|
+
* @param {*} inList
|
|
1336
|
+
* @param {Array<*>} list
|
|
1337
|
+
* @param {String} message
|
|
1338
|
+
* @namespace Assert
|
|
1339
|
+
* @api public
|
|
1340
|
+
*/
|
|
1341
|
+
|
|
1342
|
+
assert.oneOf = function (inList, list, msg) {
|
|
1343
|
+
new Assertion(inList, msg).to.be.oneOf(list);
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
/**
|
|
1347
|
+
* ### .changes(function, object, property)
|
|
1348
|
+
*
|
|
1349
|
+
* Asserts that a function changes the value of a property
|
|
1350
|
+
*
|
|
1351
|
+
* var obj = { val: 10 };
|
|
1352
|
+
* var fn = function() { obj.val = 22 };
|
|
1353
|
+
* assert.changes(fn, obj, 'val');
|
|
1354
|
+
*
|
|
1355
|
+
* @name changes
|
|
1356
|
+
* @param {Function} modifier function
|
|
1357
|
+
* @param {Object} object
|
|
1358
|
+
* @param {String} property name
|
|
1359
|
+
* @param {String} message _optional_
|
|
1360
|
+
* @namespace Assert
|
|
1361
|
+
* @api public
|
|
1362
|
+
*/
|
|
1363
|
+
|
|
1364
|
+
assert.changes = function (fn, obj, prop) {
|
|
1365
|
+
new Assertion(fn).to.change(obj, prop);
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
/**
|
|
1369
|
+
* ### .doesNotChange(function, object, property)
|
|
1370
|
+
*
|
|
1371
|
+
* Asserts that a function does not changes the value of a property
|
|
1372
|
+
*
|
|
1373
|
+
* var obj = { val: 10 };
|
|
1374
|
+
* var fn = function() { console.log('foo'); };
|
|
1375
|
+
* assert.doesNotChange(fn, obj, 'val');
|
|
1376
|
+
*
|
|
1377
|
+
* @name doesNotChange
|
|
1378
|
+
* @param {Function} modifier function
|
|
1379
|
+
* @param {Object} object
|
|
1380
|
+
* @param {String} property name
|
|
1381
|
+
* @param {String} message _optional_
|
|
1382
|
+
* @namespace Assert
|
|
1383
|
+
* @api public
|
|
1384
|
+
*/
|
|
1385
|
+
|
|
1386
|
+
assert.doesNotChange = function (fn, obj, prop) {
|
|
1387
|
+
new Assertion(fn).to.not.change(obj, prop);
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
/**
|
|
1391
|
+
* ### .increases(function, object, property)
|
|
1392
|
+
*
|
|
1393
|
+
* Asserts that a function increases an object property
|
|
1394
|
+
*
|
|
1395
|
+
* var obj = { val: 10 };
|
|
1396
|
+
* var fn = function() { obj.val = 13 };
|
|
1397
|
+
* assert.increases(fn, obj, 'val');
|
|
1398
|
+
*
|
|
1399
|
+
* @name increases
|
|
1400
|
+
* @param {Function} modifier function
|
|
1401
|
+
* @param {Object} object
|
|
1402
|
+
* @param {String} property name
|
|
1403
|
+
* @param {String} message _optional_
|
|
1404
|
+
* @namespace Assert
|
|
1405
|
+
* @api public
|
|
1406
|
+
*/
|
|
1407
|
+
|
|
1408
|
+
assert.increases = function (fn, obj, prop) {
|
|
1409
|
+
new Assertion(fn).to.increase(obj, prop);
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
/**
|
|
1413
|
+
* ### .doesNotIncrease(function, object, property)
|
|
1414
|
+
*
|
|
1415
|
+
* Asserts that a function does not increase object property
|
|
1416
|
+
*
|
|
1417
|
+
* var obj = { val: 10 };
|
|
1418
|
+
* var fn = function() { obj.val = 8 };
|
|
1419
|
+
* assert.doesNotIncrease(fn, obj, 'val');
|
|
1420
|
+
*
|
|
1421
|
+
* @name doesNotIncrease
|
|
1422
|
+
* @param {Function} modifier function
|
|
1423
|
+
* @param {Object} object
|
|
1424
|
+
* @param {String} property name
|
|
1425
|
+
* @param {String} message _optional_
|
|
1426
|
+
* @namespace Assert
|
|
1427
|
+
* @api public
|
|
1428
|
+
*/
|
|
1429
|
+
|
|
1430
|
+
assert.doesNotIncrease = function (fn, obj, prop) {
|
|
1431
|
+
new Assertion(fn).to.not.increase(obj, prop);
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
/**
|
|
1435
|
+
* ### .decreases(function, object, property)
|
|
1436
|
+
*
|
|
1437
|
+
* Asserts that a function decreases an object property
|
|
1438
|
+
*
|
|
1439
|
+
* var obj = { val: 10 };
|
|
1440
|
+
* var fn = function() { obj.val = 5 };
|
|
1441
|
+
* assert.decreases(fn, obj, 'val');
|
|
1442
|
+
*
|
|
1443
|
+
* @name decreases
|
|
1444
|
+
* @param {Function} modifier function
|
|
1445
|
+
* @param {Object} object
|
|
1446
|
+
* @param {String} property name
|
|
1447
|
+
* @param {String} message _optional_
|
|
1448
|
+
* @namespace Assert
|
|
1449
|
+
* @api public
|
|
1450
|
+
*/
|
|
1451
|
+
|
|
1452
|
+
assert.decreases = function (fn, obj, prop) {
|
|
1453
|
+
new Assertion(fn).to.decrease(obj, prop);
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
/**
|
|
1457
|
+
* ### .doesNotDecrease(function, object, property)
|
|
1458
|
+
*
|
|
1459
|
+
* Asserts that a function does not decreases an object property
|
|
1460
|
+
*
|
|
1461
|
+
* var obj = { val: 10 };
|
|
1462
|
+
* var fn = function() { obj.val = 15 };
|
|
1463
|
+
* assert.doesNotDecrease(fn, obj, 'val');
|
|
1464
|
+
*
|
|
1465
|
+
* @name doesNotDecrease
|
|
1466
|
+
* @param {Function} modifier function
|
|
1467
|
+
* @param {Object} object
|
|
1468
|
+
* @param {String} property name
|
|
1469
|
+
* @param {String} message _optional_
|
|
1470
|
+
* @namespace Assert
|
|
1471
|
+
* @api public
|
|
1472
|
+
*/
|
|
1473
|
+
|
|
1474
|
+
assert.doesNotDecrease = function (fn, obj, prop) {
|
|
1475
|
+
new Assertion(fn).to.not.decrease(obj, prop);
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
/*!
|
|
1479
|
+
* ### .ifError(object)
|
|
1480
|
+
*
|
|
1481
|
+
* Asserts if value is not a false value, and throws if it is a true value.
|
|
1482
|
+
* This is added to allow for chai to be a drop-in replacement for Node's
|
|
1483
|
+
* assert class.
|
|
1484
|
+
*
|
|
1485
|
+
* var err = new Error('I am a custom error');
|
|
1486
|
+
* assert.ifError(err); // Rethrows err!
|
|
1487
|
+
*
|
|
1488
|
+
* @name ifError
|
|
1489
|
+
* @param {Object} object
|
|
1490
|
+
* @namespace Assert
|
|
1491
|
+
* @api public
|
|
1492
|
+
*/
|
|
1493
|
+
|
|
1494
|
+
assert.ifError = function (val) {
|
|
1495
|
+
if (val) {
|
|
1496
|
+
throw(val);
|
|
1497
|
+
}
|
|
1498
|
+
};
|
|
1499
|
+
|
|
1500
|
+
/**
|
|
1501
|
+
* ### .isExtensible(object)
|
|
1502
|
+
*
|
|
1503
|
+
* Asserts that `object` is extensible (can have new properties added to it).
|
|
1504
|
+
*
|
|
1505
|
+
* assert.isExtensible({});
|
|
1506
|
+
*
|
|
1507
|
+
* @name isExtensible
|
|
1508
|
+
* @alias extensible
|
|
1509
|
+
* @param {Object} object
|
|
1510
|
+
* @param {String} message _optional_
|
|
1511
|
+
* @namespace Assert
|
|
1512
|
+
* @api public
|
|
1513
|
+
*/
|
|
1514
|
+
|
|
1515
|
+
assert.isExtensible = function (obj, msg) {
|
|
1516
|
+
new Assertion(obj, msg).to.be.extensible;
|
|
1517
|
+
};
|
|
1518
|
+
|
|
1519
|
+
/**
|
|
1520
|
+
* ### .isNotExtensible(object)
|
|
1521
|
+
*
|
|
1522
|
+
* Asserts that `object` is _not_ extensible.
|
|
1523
|
+
*
|
|
1524
|
+
* var nonExtensibleObject = Object.preventExtensions({});
|
|
1525
|
+
* var sealedObject = Object.seal({});
|
|
1526
|
+
* var frozenObject = Object.freese({});
|
|
1527
|
+
*
|
|
1528
|
+
* assert.isNotExtensible(nonExtensibleObject);
|
|
1529
|
+
* assert.isNotExtensible(sealedObject);
|
|
1530
|
+
* assert.isNotExtensible(frozenObject);
|
|
1531
|
+
*
|
|
1532
|
+
* @name isNotExtensible
|
|
1533
|
+
* @alias notExtensible
|
|
1534
|
+
* @param {Object} object
|
|
1535
|
+
* @param {String} message _optional_
|
|
1536
|
+
* @namespace Assert
|
|
1537
|
+
* @api public
|
|
1538
|
+
*/
|
|
1539
|
+
|
|
1540
|
+
assert.isNotExtensible = function (obj, msg) {
|
|
1541
|
+
new Assertion(obj, msg).to.not.be.extensible;
|
|
1542
|
+
};
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* ### .isSealed(object)
|
|
1546
|
+
*
|
|
1547
|
+
* Asserts that `object` is sealed (cannot have new properties added to it
|
|
1548
|
+
* and its existing properties cannot be removed).
|
|
1549
|
+
*
|
|
1550
|
+
* var sealedObject = Object.seal({});
|
|
1551
|
+
* var frozenObject = Object.seal({});
|
|
1552
|
+
*
|
|
1553
|
+
* assert.isSealed(sealedObject);
|
|
1554
|
+
* assert.isSealed(frozenObject);
|
|
1555
|
+
*
|
|
1556
|
+
* @name isSealed
|
|
1557
|
+
* @alias sealed
|
|
1558
|
+
* @param {Object} object
|
|
1559
|
+
* @param {String} message _optional_
|
|
1560
|
+
* @namespace Assert
|
|
1561
|
+
* @api public
|
|
1562
|
+
*/
|
|
1563
|
+
|
|
1564
|
+
assert.isSealed = function (obj, msg) {
|
|
1565
|
+
new Assertion(obj, msg).to.be.sealed;
|
|
1566
|
+
};
|
|
1567
|
+
|
|
1568
|
+
/**
|
|
1569
|
+
* ### .isNotSealed(object)
|
|
1570
|
+
*
|
|
1571
|
+
* Asserts that `object` is _not_ sealed.
|
|
1572
|
+
*
|
|
1573
|
+
* assert.isNotSealed({});
|
|
1574
|
+
*
|
|
1575
|
+
* @name isNotSealed
|
|
1576
|
+
* @alias notSealed
|
|
1577
|
+
* @param {Object} object
|
|
1578
|
+
* @param {String} message _optional_
|
|
1579
|
+
* @namespace Assert
|
|
1580
|
+
* @api public
|
|
1581
|
+
*/
|
|
1582
|
+
|
|
1583
|
+
assert.isNotSealed = function (obj, msg) {
|
|
1584
|
+
new Assertion(obj, msg).to.not.be.sealed;
|
|
1585
|
+
};
|
|
1586
|
+
|
|
1587
|
+
/**
|
|
1588
|
+
* ### .isFrozen(object)
|
|
1589
|
+
*
|
|
1590
|
+
* Asserts that `object` is frozen (cannot have new properties added to it
|
|
1591
|
+
* and its existing properties cannot be modified).
|
|
1592
|
+
*
|
|
1593
|
+
* var frozenObject = Object.freeze({});
|
|
1594
|
+
* assert.frozen(frozenObject);
|
|
1595
|
+
*
|
|
1596
|
+
* @name isFrozen
|
|
1597
|
+
* @alias frozen
|
|
1598
|
+
* @param {Object} object
|
|
1599
|
+
* @param {String} message _optional_
|
|
1600
|
+
* @namespace Assert
|
|
1601
|
+
* @api public
|
|
1602
|
+
*/
|
|
1603
|
+
|
|
1604
|
+
assert.isFrozen = function (obj, msg) {
|
|
1605
|
+
new Assertion(obj, msg).to.be.frozen;
|
|
1606
|
+
};
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* ### .isNotFrozen(object)
|
|
1610
|
+
*
|
|
1611
|
+
* Asserts that `object` is _not_ frozen.
|
|
1612
|
+
*
|
|
1613
|
+
* assert.isNotFrozen({});
|
|
1614
|
+
*
|
|
1615
|
+
* @name isNotFrozen
|
|
1616
|
+
* @alias notFrozen
|
|
1617
|
+
* @param {Object} object
|
|
1618
|
+
* @param {String} message _optional_
|
|
1619
|
+
* @namespace Assert
|
|
1620
|
+
* @api public
|
|
1621
|
+
*/
|
|
1622
|
+
|
|
1623
|
+
assert.isNotFrozen = function (obj, msg) {
|
|
1624
|
+
new Assertion(obj, msg).to.not.be.frozen;
|
|
1625
|
+
};
|
|
1626
|
+
|
|
1627
|
+
/*!
|
|
1628
|
+
* Aliases.
|
|
1629
|
+
*/
|
|
1630
|
+
|
|
1631
|
+
(function alias(name, as){
|
|
1632
|
+
assert[as] = assert[name];
|
|
1633
|
+
return alias;
|
|
1634
|
+
})
|
|
1635
|
+
('isOk', 'ok')
|
|
1636
|
+
('isNotOk', 'notOk')
|
|
1637
|
+
('throws', 'throw')
|
|
1638
|
+
('throws', 'Throw')
|
|
1639
|
+
('isExtensible', 'extensible')
|
|
1640
|
+
('isNotExtensible', 'notExtensible')
|
|
1641
|
+
('isSealed', 'sealed')
|
|
1642
|
+
('isNotSealed', 'notSealed')
|
|
1643
|
+
('isFrozen', 'frozen')
|
|
1644
|
+
('isNotFrozen', 'notFrozen');
|
|
1645
|
+
};
|