scala.collection.immutable.ListSet Scala Examples
The following examples show how to use scala.collection.immutable.ListSet.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: MultiSet.scala From vm with GNU Affero General Public License v3.0 | 5 votes |
package org.mmadt.storage.obj.value.strm.util import org.mmadt.language.obj.value.Value import org.mmadt.language.obj.value.strm.Strm import org.mmadt.language.obj.{Obj, _} import org.mmadt.storage.StorageFactory._ import scala.collection.SortedSet import scala.collection.immutable.ListSet class MultiSet[A <: Obj](val baseSet: ListSet[A] = ListSet.empty[A]) extends Seq[A] { def get(a: A): Option[A] = baseSet.find(b => a.asInstanceOf[Value[_]].g.equals(b.asInstanceOf[Value[_]].g)) def put(a: A): MultiSet[A] = { val oldObj: Option[A] = this.get(a) new MultiSet[A](oldObj.map(x => baseSet - x).getOrElse(baseSet) + oldObj.map(x => x.hardQ(plusQ(a, x))).getOrElse(a)) } def objSize: Long = baseSet.size def qSize: IntQ = baseSet.foldRight(qZero)((a, b) => plusQ(a.q, b)) override def length: scala.Int = objSize.toInt override def apply(idx: scala.Int): A = this.baseSet.toSeq.apply(idx) override def iterator: Iterator[A] = this.baseSet.iterator override def toSeq: Seq[A] = baseSet.toSeq override def hashCode: scala.Int = baseSet.hashCode() override def equals(other: Any): Boolean = other match { case multiSet: MultiSet[_] => multiSet.baseSet == this.baseSet case _ => false } } object MultiSet { def put[A <: Obj](objs: A*): MultiSet[A] = objs.foldLeft(new MultiSet[A])((a, b) => a.put(b)) def test(a: Obj, b: Obj): Boolean = MultiSet(a.toStrm.values) == MultiSet(b.toStrm.values) def apply[A <: Obj](objs: Seq[A]): MultiSet[A] = objs.flatMap { case astrm: Strm[A] => astrm.values case x => List(x) }.foldLeft(new MultiSet[A])((a, b) => a.put(b)) }
Example 2
Source File: CollectionConvertersSuite.scala From pureconfig with Mozilla Public License 2.0 | 5 votes |
package pureconfig import scala.collection.JavaConverters._ import scala.collection.immutable.{ HashSet, ListSet, Queue, TreeSet } import com.typesafe.config.{ ConfigFactory, ConfigValueFactory, ConfigValueType } import pureconfig.error.{ ConfigReaderFailures, ConvertFailure, WrongType } class CollectionConvertersSuite extends BaseSuite { implicit override val generatorDrivenConfig = PropertyCheckConfiguration(minSuccessful = 100) behavior of "ConfigConvert" checkArbitrary[HashSet[String]] checkArbitrary[List[Float]] checkRead[List[Int]]( // order of keys maintained ConfigValueFactory.fromMap(Map("2" -> 1, "0" -> 2, "1" -> 3).asJava) -> List(2, 3, 1), ConfigValueFactory.fromMap(Map("3" -> 2, "1" -> 4).asJava) -> List(4, 2), ConfigValueFactory.fromMap(Map("1" -> 1, "a" -> 2).asJava) -> List(1)) checkFailures[List[Int]]( ConfigValueFactory.fromMap(Map("b" -> 1, "a" -> 2).asJava) -> ConfigReaderFailures( ConvertFailure(WrongType(ConfigValueType.OBJECT, Set(ConfigValueType.LIST)), emptyConfigOrigin, "")), ConfigValueFactory.fromMap(Map().asJava) -> ConfigReaderFailures( ConvertFailure(WrongType(ConfigValueType.OBJECT, Set(ConfigValueType.LIST)), emptyConfigOrigin, ""))) checkArbitrary[ListSet[Int]] checkArbitrary[Map[String, Int]] checkFailures[Map[String, Int]]( // nested map should fail ConfigFactory.parseString("conf.a=1").root() -> ConfigReaderFailures( ConvertFailure(WrongType(ConfigValueType.OBJECT, Set(ConfigValueType.NUMBER)), stringConfigOrigin(1), "conf")), // wrong value type should fail ConfigFactory.parseString("{ a=b }").root() -> ConfigReaderFailures( ConvertFailure(WrongType(ConfigValueType.STRING, Set(ConfigValueType.NUMBER)), stringConfigOrigin(1), "a"))) checkArbitrary[Queue[Boolean]] checkArbitrary[Set[Double]] checkRead[Set[Int]]( ConfigValueFactory.fromMap(Map("1" -> 4, "2" -> 5, "3" -> 6).asJava) -> Set(4, 5, 6)) checkArbitrary[Stream[String]] checkArbitrary[TreeSet[Int]] checkArbitrary[Vector[Short]] checkArbitrary[Option[Int]] checkArbitrary[Array[Int]] }
Example 3
Source File: MapExtensions.scala From quill with Apache License 2.0 | 5 votes |
package io.getquill.codegen.util import scala.collection.immutable.{ ListMap, ListSet } object MapExtensions { implicit class MapOps[K, V](m: Map[K, V]) { def zipOnKeys(o: Map[K, V]) = zipMapsOnKeys(m, o) def zipOnKeysOrdered(o: Map[K, V]) = zipMapsOnKeysOrdered(m, o) } def zipMapsOnKeys[K, V](one: Map[K, V], two: Map[K, V]): Map[K, (Option[V], Option[V])] = { (for (key <- one.keys ++ two.keys) yield (key, (one.get(key), two.get(key)))) .toMap } def zipMapsOnKeysOrdered[K, V](one: Map[K, V], two: Map[K, V]): ListMap[K, (Option[V], Option[V])] = { val outList = (for (key <- (ListSet() ++ one.keys.toSeq.reverse) ++ (ListSet() ++ two.keys.toSeq.reverse)) yield (key, (one.get(key), two.get(key)))) (new ListMap() ++ outList.toSeq.reverse) } }
Example 4
Source File: QueryExecutionSpec.scala From neotypes with MIT License | 5 votes |
package neotypes import neotypes.implicits.mappers.results._ import neotypes.implicits.syntax.string._ import neotypes.internal.syntax.async._ import scala.collection.immutable.{ListMap, ListSet, SortedMap} import scala.concurrent.Future final class QueryExecutionSpec[F[_]](testkit: EffectTestkit[F]) extends BaseIntegrationSpec(testkit) { behavior of s"Excuting queries using: ${effectName}" it should "retrieve multiple results as a List" in executeAsFuture { s => "match (p:Person) return p.name" .query[Int] .list(s) .map { names => assert(names == (0 to 10).toList) } } it should "retrieve multiple results as a Set" in executeAsFuture { s => "match (p:Person) return p.name" .query[Int] .set(s) .map { names => assert(names == (0 to 10).toSet) } } it should "retrieve multiple results as a Vector" in executeAsFuture { s => "match (p:Person) return p.name" .query[Int] .vector(s) .map { names => assert(names == (0 to 10).toVector) } } it should "retrieve multiple results as a Map" in executeAsFuture { s => "match (p:Person) return p.name, 1" .query[(Int, Int)] .map(s) .map { names => assert(names == (0 to 10).map(k => k -> 1).toMap) } } it should "retrieve multiple results as a custom collection (ListSet)" in executeAsFuture { s => "match (p:Person) return p.name" .query[Int] .collectAs(ListSet)(s) .map { names => assert(names == ListSet((0 to 10) : _*)) } } it should "retrieve multiple results as a custom collection (ListMap)" in executeAsFuture { s => "match (p:Person) return p.name, 1" .query[(Int, Int)] .collectAs(ListMap)(s) .map { names => assert(names == ListMap((0 to 10).map(k => k -> 1) : _*)) } } it should "retrieve multiple results as a custom collection (SortedMap)" in executeAsFuture { s => "match (p:Person) return p.name, 1" .query[(Int, Int)] .collectAs(SortedMap)(s) .map { names => assert(names == SortedMap((0 to 10).map(k => k -> 1) : _*)) } } it should "retrieve a Neo4j LIST into a Scala collection (List)" in executeAsFuture { s => "unwind [1, 2] as x return x" .query[Int] .list(s) .map { names => assert(names == List(1, 2)) } } it should "retrieve a Neo4j LIST into a Scala collection (ListSet)" in executeAsFuture { s => "unwind [1, 2] as x return x" .query[Int] .collectAs(ListSet)(s) .map { names => assert(names == ListSet(1, 2)) } } override final val initQuery: String = BaseIntegrationSpec.MULTIPLE_VALUES_INIT_QUERY }