--- /dev/null
+! Copyright (C) 2009 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors kernel tools.test usa-cities ;
+IN: usa-cities.tests
+
+[ t ] [ 55406 find-zip-code name>> "Minneapolis" = ] unit-test
! See http://factorcode.org/license.txt for BSD license.
USING: io.files io.encodings.ascii sequences generalizations
math.parser combinators kernel memoize csv summary
-words accessors math.order binary-search ;
+words accessors math.order binary-search combinators.smart ;
IN: usa-cities
SINGLETONS: AK AL AR AS AZ CA CO CT DC DE FL GA HI IA ID IL IN
MEMO: cities ( -- seq )
"resource:extra/usa-cities/zipcode.csv" ascii <file-reader>
csv rest-slice [
- 7 firstn {
- [ string>number ]
- [ ]
- [ string>state ]
- [ string>number ]
- [ string>number ]
- [ string>number ]
- [ string>number ]
- } spread city boa
+ [
+ {
+ [ string>number ]
+ [ ]
+ [ string>state ]
+ [ string>number ]
+ [ string>number ]
+ [ string>number ]
+ [ string>number ]
+ } spread
+ ] input<sequence city boa
] map ;
MEMO: cities-named ( name -- cities )